奇妙的数字
小明发现了一个奇妙的数字。它的平方和立方正好把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]--;
#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; }
123456789101112131415161718192021222324252627 | #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; } |
---|
最近我会每天持续更新一道C语言习题的详解,
寒假在家有时间,如有比较好的题目请在下面
留言,兴许明天就是发布的就是你的题目的
详解哦
更多习题详解还请关注博主,www.qcgzxw.cn
下载地址:
文件名称:奇妙的数字习题详解
文件大小:49KB适用版本:all
更新日期:17-01-14作者信息:www.qcgzxw.cn