c语言穷举法(枚举法)流程转移控制韩信点兵

枚举法
枚举法(Enumeration),常常称之为穷举法(Exhaustion),也就是列举所有可能,逐一试探,常用于密码的破译(暴力搜索)
韩信点兵
韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。编程求韩信至少有多少兵?
方法一

#include <stdio.h>
int main(){
    int x;
    for(x=1; ;x++)
    {
        if(x%5==1 && x%6==5 && x%7==4 && x%11==10)
        {
           printf("x=%d\n",x);
            goto END;
        }
    }
    END: ;
    return 0;
}

方法二

#include <stdio.h>
int main()
{
    int x;
    for(x=1; ;x++)
    {
        if(x%5==1 && x%6==5 && x%7==4 && x%11==10)
        {
          printf("x=%d\n",x);
          break;
        }
    }
	return 0;
}

方法三

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int x;
    for(x=1; ;x++)
    {
        if(x%5==1 && x%6==5 && x%7==4 && x%11==10)
        {
          printf("x=%d\n",x);
          exit(0);
        }
    }
	return 0;
}

方法四

#include <stdio.h>
int main()
{
    int x;
    int find=0;
    for(x=1;!find;x++)
    {
        if(x%5==1 && x%6==5 && x%7==4 && x%11==10)
        {
          printf("x=%d\n",x);
          find=1;
        }
    }
	return 0;
}

方法五

#include <stdio.h>
int main()
{
    int x=0;
    do{
        x++;
    }while(!(x%5==1 && x%6==5 && x%7==4 && x%11==10));
    printf("x=%d\n",x);
	return 0;
}

方法六

#include <stdio.h>
int main()
{
    int x=0;
    int find=0;
    while(!find)
    {
        if(x%5==1 && x%6==5 && x%7==4 && x%11==10)
        {
            printf("x=%d\n",x);
            find=1;
        }
        x++;
    }
	return 0;
}

发布日期:

所属分类: 编程, 编程语言 标签: