若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是“四位双平方数”。例如: 由于7396=86^2,且7+3+9+6=25=5^2,则称7396是“四位双平方数”。若把所有“四位双平方数”按升序排列,求前5个“四位双平方数”的和。
{
p=i*i;
if(judge(p));//判断P个数字加起来是副书另一个书的平方,调用函数,为真-返回1
n++;
if(n==5) break;
}
[此贴子已经被作者于2007-5-19 17:04:41编辑过]
自己经过奋战,搞出来一个,希望高人指点
include<stdio.h>
#include<math.h>
void main()
{
int i=1,a,b,c,d,r1,r2;
int sum1,sum2,SUM=0;
float r3,r4;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
{
sum1=1000*a+100*b+10*c+d; /*求出4位数*/
sum2=a+b+c+d;
r1=sqrt(sum1);
r2=sqrt(sum2);
r3=sqrt(sum1);
r4=sqrt(sum1);
if(r3-r1==0&&r4-r1==0)
printf("%d\n",sum1);
if(i<=5) /*求出前5项的和*/
{
SUM=SUM+sum1;
i++;
}
}
printf("the sum is %d\n",SUM);
}
好像那个/*求出前5项的和*/有错误
[此贴子已经被作者于2007-5-19 16:00:28编辑过]