【第一次博客之旅】诠释暴力枚举

来源:互联网 发布:中国农历闰年的算法 编辑:程序博客网 时间:2024/05/21 17:31

同学给的一个题目


/* 简单看一下,用暴力枚举的方法可以轻松解决*/

#include<stdio.h>
int zhao(char n)
{
    return (n==2||n==4);
}
int qian(char n)
{
    return (n==1||n==6);
}
int sun(char n)
{
    return (n==3||n==7);
}
int li(char n)
{
    return (n==5);
}
int zhou(char n)
{
    return (n==1||n==6||n==4);
}
int wu(char n)
{
    return (n==2||n==5);
}
int chen(char n)
{
    return (n==3||n==6||n==7);
}
int main()
{
    int a[8],b[8];
    for(int i=1;i<=7;i++)
    {
        for(int j=1;j<=7;j++)
        {
            for(int k=1;k<=7;k++)
            {
                for(int o=1;o<=7;o++)
                {
                    for(int p=1;p<=7;p++)
                    {
                        for(int q=1;q<=7;q++)
                        {
                            for(int n=1;n<=7;n++)
                            {


                                if(zhao(i)&&qian(j)&&sun(k)&&li(o)&&zhou(p)&&wu(q)&&chen(n))
                                {
                                    int num[7]={i,j,k,o,p,q,n},c=0;
                                    for(int s=0;s<7;s++)
                                    {
                                        for(int t=0;t<7;t++)
                                        {
                                            if(s!=t)
                                            {
                                                if(num[s]==num[t])
                                                {
                                                    c++;
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                    if(c==0)
                                    {
                                        printf("赵:星期 %d     钱:星期%d\n",i,j);
                                        printf("孙:星期 %d     李:星期%d\n",k,o);
                                        printf("周:星期 %d     吴:星期%d\n",p,q);
                                        printf("陈:星期 %d\n\n\n",n);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

//七重循环 暴力枚举  就是 如此任性


                                   // 答案四种情况

1 0