|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- //1
- #include<stdio.h>
- #include<math.h>
- int main()
- {
- int num=0,a,b,i;
- for(i=1000;i<9999;i++)
- {
- while(i)
- {
- a=i%10;
- num=num+pow(a,4);
- i=i/10;
- }
- if(num==i)
- printf("%2d",i);
- }
- }
复制代码
要求一个四位数的每一位的四次方和等于其本身,为什么我的这个没有输出
本帖最后由 zhangjinxuan 于 2022-11-17 15:55 编辑
你的代码存在四个问题,下面的代码已改正:
- #include <stdio.h>
- #include <math.h>
- int main() {
- int num = 0, a, b, i;
- for (i = 1000; i <= 9999; i++) { //应该枚举到 9999, 虽然 9999 不是玫瑰数,不过这样做是为了严谨
- num = 0; //num 必须清零
- int t = i; //必须用一个新变量来记,否则会死循环,你可以模拟一下,比如枚举 1000 时 while 过后就清零了,然后又要重开始枚举……
- while (t) {
- a = t % 10;
- num = num + pow(a, 4);
- t = t / 10;
- }
- if (num == i) {
- printf("%2d ", i); //应该有空格
- }
- }
复制代码
|
|