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语言面试题】第2题:宏参数的连接
- 【C语言面试题】第1题:有符号变量和无符号变量的值得转换
- 算法学习记录七(C++)--->二分法找有序旋转数组最小值
- C语言面试题
- C---练习题部分2
- 数组中出现次数最多的数及出现次数
- 嵌入式软件开发----C语言面试题
- C++学习之路---构造函数--1
- C++ Primer【练习】【5.20】
- PRIME
- ArcEngine C++开发中的ArcGIS version not specified问题
- Java/C++中静态成员函数
- 反斜杠在C/C++中的作用
- C++Primer第五版 练习11.19(解答)
- C++Primer第五版 练习11.17(解答)
- C++Primer第五版 练习11.16(解答)
- C++Primer第五版 11.3.1节练习
- C语言中char int转换问题
- c语言中的正则表达式regex.h