小明發現了一個奇妙的數字。它的平方和立方正好把0~9的10個數字每個用且只用了一次。
你能猜出這個數字是多少嗎?
請填寫該數字,不要填寫任何多餘的內容。
#include<stdio.h>
#include<stdlib.h>
int count(long num)//計算位數
{
int a=0;
while(num>0)
{
a++;
num=num/10;
}
return a;
}
int fun(long num,long num1)//判斷是否從0-9全部用完。如果用完了 返回1,否則返回0。(num是平方,num1是立方)
{
int b=0,c=0,d=0,e=0,numlen,num1len;
//
int a[]={0,1,2,3,4,5,6,7,8,9};
if((count(num)+count(num1))!=10)return 0;//平方和立方的位數 是10位
numlen=count(num);
num1len=count(num1);
//排除平方里面的數字(此處的count(num)要提出到循環外,每次循環都會變化)
for(b=0;b<numlen;b++)
{
d=num%10;
num=num/10;
for(c=0;c<10;c++)
{
if(a[c]==d)
{
a[c]=-1;
}
}
}
//排除立方里面的數字
for(b=0;b<num1len;b++)
{
d=num1%10;
num1=num1/10;
for(c=0;c<10;c++)
{
if(a[c]==d)
{
a[c]=-1;
}
}
}
//看有沒有排除完整
for(e=0;e<10;e++)
{
if(a[e]!=-1)
{
return 0;
}
}
return 1;
}
int main()
{
long i,j,k;
//printf("%d",count(21345678));
// printf("%d",fun(12345678,90));
for(i=0;i<9999;i++)
{
if(fun(i*i,i*i*i)==1)
{
printf("%d",i);
}
}
return 0;
}