c编程
#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);
}
}
要求一个四位数的每一位的四次方和等于其本身,为什么我的没有输出 这一套下来 while结束的时候i = 0
if(num==i)到这一句的时候 i=0, 所以就没有输出了 本帖最后由 jackz007 于 2022-11-16 17:02 编辑
for(i=1000;i<9999;i++)
{
num = 0 ;// 对于每一个 i ,num 都需要重新初始化为 0 值。
j = i ;// 经过后面的循环 i 会成为 0 值,而后面比相等还要用 i ,而且,i 是 for 的循环变量,不允许被改变,所以,这里需要一个替身
while(j) // 让 j 顶替 i
{
a = j % 10 ;
num=num+pow(a,4) ;
j = j / 10 ;// 让 j 顶替 i
}
if(num == i) // 这里比较要用到 i,所以,必须用 j 顶替 i 本帖最后由 h-b-z-d-j-s-m 于 2022-11-16 17:13 编辑
jackz007 发表于 2022-11-16 16:53
页:
[1]