判断平方和立方是否用完了0~9的十个数字,用了一个flag数组,使判断简单了好多。
#include <stdio.h>
#include <stdlib.h>
int use0_9(int x, int y)
{
char flag[10] = {0};
while(x)
{
if(flag[x%10] == 1)
{
return 0;
}
else
{
flag[x%10] = 1;
}
x /= 10;
}
while(y)
{
if(flag[y%10] == 1)
{
return 0;
}
else
{
flag[y%10] = 1;
}
y /= 10;
}
return 1;
}
int howold(void)
{
int i, ii, iii;
for(i=0; i<100; i++)
{
ii = i * i;
iii = i * i * i;
if((ii >= 1000 && ii <= 9999)
&& (iii >= 100000 && iii <= 999999)
&& use0_9(ii, iii))
{
printf("ii:%d, iii:%d\n", ii, iii);
return i;
}
}
return 0;
}
int main(int argc, char *argv[])
{
printf("age: %d\n", howold());
return 0;
}