闲来无事,不想看书
看看编程之美消磨时间,看到数字哑谜和回文,表示比较有兴趣,写了个程序来搞一下这些有趣的数
两个源代码如下:
#include<stdio.h>
bool check(int x)
{
int comp[10],i,j=1;
for(i=0;i<=9;i++)
comp[i]=0;
for(i=1;i<=9;i++)
{
int k=(x%(j*10))/j;
comp[k]++;
j*=10;
}
for(i=1;i<=9;i++)
if(comp[i]!=1)
return false;
return true;
}
int main()
{
for(int i=111111111;i<=999999999;i++)
{
int j,a=10000000;
for(j=2;j<=9;j++)
{
int b=i/a;
if(b%j!=0)
break;
a/=10;
}
if(j==10&&check(i))
printf("%d\n", i);
}
return 0;
}
#include<stdio.h>
bool check(int x)
{
int comp[10],i,j=1;
for(i=0;i<=9;i++)
comp[i]=0;
for(i=1;i<=5;i++)
{
int k=(x%(j*10))/j;
comp[k]++;
j*=10;
}
for(i=0;i<=9;i++)
if(comp[i]>=2)
return false;
return true;
}
int main()
{
int i,j,k;
for(i=10000;i<=99999;i++)
{
if(check(i))
{
int sum=0,m=1,n=10000;
for(k=1;k<=5;k++)
{
int l=(i%(m*10))/m;
sum=sum+l*n;
n/=10;
m*=10;
}
for(j=2;j<=9;j++)
{
if(i*j==sum)
printf("%d\n", i);
}
}
}
return 0;
}