您的位置:首页 > 编程语言 > C语言/C++

C---某人岁数的3次方是四位数,4次方是六位数,且知此人岁数的3次方和4次方用遍了0~9十个数字。编写一个程序求此人的岁数

2015-10-08 16:54 661 查看
  要求如题,C语言实现。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

//-------------------------------------------------------------------
//功能描述:某人岁数的3次方是四位数,4次方是六位数,且知此人岁数的3次方和4次方用遍了0~9十个数字。编写一个程序求此人的岁数
//修改日期:2015-10-8
//-------------------------------------------------------------------
bool IsRepeatChar(char *str)
{
int len = strlen(str);
//123
for(int i = 0; i < len-1; ++i){

for(int j = i+1; j < len; ++j){
if(*(str+i) == *(str+j)){
return false;
}
}
}
return true;
}
bool IsTheOldNum(int n1,int n2)
{
char buf1[8] = {0};
char buf2[8] = {0};
char numStr[16] = {0};

sprintf(buf1,"%d",n1);
sprintf(buf2,"%d",n2);

int len1 = strlen(buf1);
int len2 = strlen(buf2);

if(len1 == 4 && len2 == 6);
else return false;

sprintf(numStr,"%s%s",buf1,buf2);

if(IsRepeatChar(numStr))return true;
else return false;
}
int GetOldNum()
{
int temp1 = 0;
int temp2 = 0;
int i;

for(i = 11; ;++i){
temp1 = (int)pow((double)i,3);
temp2 = (int)pow((double)i,4);
if(IsTheOldNum(temp1,temp2))break;
}
return i;
}
int _tmain(int argc, _TCHAR* argv[])
{
printf("%d\n",GetOldNum());

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言面试题