第2个回答 2012-11-16
最简单的方法 用一个三层的循环 然后从1 一直遍历正整数
打印出x y z的值
下面是程序
#include <stdio.h>
int main(void)
{
int i , j ,k;
for(i = 0;i< 44 ; i++)
{
for(j = 0; j <44;j++)
{
for(k =0; k <44;k++)
{
if(i*i + j*j +k*k ==1989)
{
printf("x=%d,y=%d,z=%d\n",i,j,k);
}
}
}
}
return 0;
}
下面是结果
x=0,y=15,z=42
x=0,y=30,z=33
x=0,y=33,z=30
x=0,y=42,z=15
x=2,y=31,z=32
x=2,y=32,z=31
x=4,y=23,z=38
x=4,y=38,z=23
x=7,y=28,z=34
x=7,y=34,z=28
x=9,y=12,z=42
x=9,y=42,z=12
x=10,y=17,z=40
x=10,y=40,z=17
x=12,y=9,z=42
x=12,y=18,z=39
x=12,y=39,z=18
x=12,y=42,z=9
x=15,y=0,z=42
x=15,y=42,z=0
x=16,y=17,z=38
x=16,y=38,z=17
x=17,y=10,z=40
x=17,y=16,z=38
x=17,y=26,z=32
x=17,y=32,z=26
x=17,y=38,z=16
x=17,y=40,z=10
x=18,y=12,z=39
x=18,y=24,z=33
x=18,y=33,z=24
x=18,y=39,z=12
x=23,y=4,z=38
x=23,y=26,z=28
x=23,y=28,z=26
x=23,y=38,z=4
x=24,y=18,z=33
x=24,y=33,z=18
x=26,y=17,z=32
x=26,y=23,z=28
x=26,y=28,z=23
x=26,y=32,z=17
x=28,y=7,z=34
x=28,y=23,z=26
x=28,y=26,z=23
x=28,y=34,z=7
x=30,y=0,z=33
x=30,y=33,z=0
x=31,y=2,z=32
x=31,y=32,z=2
x=32,y=2,z=31
x=32,y=17,z=26
x=32,y=26,z=17
x=32,y=31,z=2
x=33,y=0,z=30
x=33,y=18,z=24
x=33,y=24,z=18
x=33,y=30,z=0
x=34,y=7,z=28
x=34,y=28,z=7
x=38,y=4,z=23
x=38,y=16,z=17
x=38,y=17,z=16
x=38,y=23,z=4
x=39,y=12,z=18
x=39,y=18,z=12
x=40,y=10,z=17
x=40,y=17,z=10
x=42,y=0,z=15
x=42,y=9,z=12
x=42,y=12,z=9
x=42,y=15,z=0