世界上最神奇的数字 算法求解

来源:互联网 发布:情义我心知的演员 编辑:程序博客网 时间:2024/04/29 20:29
    一个自然数的数位打乱之后,重新组成一个自然数,则称这两个数为相同组合数,如果一个数的2倍数,3倍数,。。。。。6倍数都是这个数的相同组合数,我们则称这个数是神奇的数,其中自然数中最小的神奇的数就称为这个世界上最神奇的数,现在编写算法求解世界上最神奇的数。
#include<cstring>#include<cstdio>using namespace std;int c1[10];int c2[10];int i,j;bool flag;void  f(int a,int c[]){    int d = a;    while(d!=0)    {        c[d%10]++;        d=d/10;    }}int main(){      for(i=1;flag!=true;i++)      {        flag = false;        memset(c1,0,sizeof(c1));        f(i,c1);        for(j=2;j<7;j++)        {            int k = i*j;            memset(c2,0,sizeof(c2));            f(k,c2);            int b=0;            while(c1[b]==c2[b]&&b<10) b++;            if(b!=10)            {                flag = false;                break;            }            else flag = true;         }         if(flag == true )         {             printf("最神奇的数是 %d",i);         }      }}

原创粉丝点击