题目
奇妙的数字
小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。
你能猜出这个数字是多少吗?
请填写该数字,不要填写任何多余的内容。
题目分析
我们可以直接从0开始找这个数num,知道找到正确的数我们就停止循环
如何判断
它的平方和立方正好把0~9的10个数字每个用且只用了一次
我的做法是:初始化一个长度为10的数组text,初始值为1,然后把取出他的平方和立方的每一位,出现一个数字则把数组里面对应的减一。
例如:
若 num=5
test[10]={1,1,1,1,1,1,1,1,1,1}
num2=num*num=25
test[5]--;
test[2]--;
nunm3=num*num*num=125
test[1]--;
test[2]--;
test[5]--;
代码示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#include<stdio.h> int main() { int num; for(num=1; num<1000; num++) { int num2=num*num; int num3=num*num*num; int test[10]={1,1,1,1,1,1,1,1,1,1}; while(num2) { test[num2%10]--; num2=num2/10; } while(num3) { test[num3%10]--; num3=num3/10; } if(test[0]==0&&test[1]==0&&test[2]==0&&test[3]==0&&test[4]==0&&test[5]==0&&test[6]==0&&test[7]==0&&test[8]==0&&test[9]==0) { printf("%d\n", num); break; } } return 0; } |
代码运行截图

程序结果

博主的话
ps
更多习题详解还请关注博主,www.qcgzxw.cn
不错的文章,内容远见卓识.禁止此消息:nolinkok@163.com
不错的文章,内容欢风华丽.禁止此消息:nolinkok@163.com
好文章,内容十全十美.禁止此消息:nolinkok@163.com