...并且这两个数中没有重复的数字,请用C语言程序求该人年龄

发布网友

我来回答

1个回答

热心网友

下面代码能够满足您的要求:
#include<stdio.h>
#include<math.h>
#include <string.h>
#include <stdlib.h>

int main()
{
int a,b,c,m;
int min = (int)sqrt(sqrt(100000))+1;//取得最小的4次方为6位数的数字
int max = (int)sqrt(sqrt(999999));//取得最大的4次方为6位数的数字
char cb[10];
char cc[10];
char ca[12];
for (a=min; a<=max; a++)
{
b = a*a*a;
c = a*a*a*a;

// 因为a的3次方是4位数,4次方是6位数,总共10位数,而且2数无重复数字,所以这2个数应该包含有0-9的10个数字
// 下面就采用八数字转换成字符串,依次检查是否包含有所有的0-9的10个数字,如果有则该数符合要求
ltoa(b, cb, 10);
ltoa(c, cc, 10);
strcpy(ca, cb);
strcat(ca, cc);
m = 0;
for (char i = 0x30; i<=0x39; i++)
{
sprintf(cb, "%c", i);
if (strstr(ca, cb) == NULL)
{
break;
}
m++;
}
if (m==10)
{
printf("AGE=%d\n",a);
}
}
return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com