请教一道C语言的题目,比较初级。
题目如图,改了好几次,结果三次测试只能对一次,不知道哪里错了,求教!测试例子输出是:110=7*7+6*6+4*4+3*3110=7*7+6*6+5*5110=8*8+6...
题目如图,改了好几次,结果三次测试只能对一次,不知道哪里错了,求教!测试例子输出是:110=7*7+6*6+4*4+3*3110=7*7+6*6+5*5110=8*8+6*6+3*3+1*1110=9*9+4*4+3*3+2*2110=9*9+5*5+2*2110=10*10+3*3+1*1这是程序:#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){ int n,n1,n2,i,a,b,c,n3,n4,n5,g; scanf("%d",&n); n1=sqrt(n); if(n==0) { printf("0=0*0\n"); } else if(n==1) { printf("1=1*1\n"); } else { for(i=1; i<=n1+1; i++) { for(a=i-1; a>0; a--) { for(b=a-1; b>0; b--) { for(c=b-1,g=0; c>0; c--) { n2=i*i+a*a+b*b+c*c; if(n2==n) { printf("%d=%d*%d+%d*%d+%d*%d+%d*%d\n",n,i,i,a,a,b,b,c,c); } } } } for(a=i-1; a>0; a--) { for(b=a-1; b>0; b--) { n5=i*i+a*a+b*b; if(n5==n) { printf("%d=%d*%d+%d*%d+%d*%d\n",n,i,i,a,a,b,b); } } } for(a=i-1; a>0; a--) { n4=i*i+a*a; if(n4==n) { printf("%d=%d*%d+%d*%d\n",n,i,i,a,a); } } n3=i*i; if(n3==n) { printf("%d=%d*%d\n",n,i,i); } } } return 0;}
展开
1个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
void main()
{
int number,i,j,k,l;
printf("Please enter a number=");
scanf("%d",&number); /*输入整数*/
for(i=1;i<number/2;i++) /*穷举法。遍历大于1的自然数,试算i,j,k,l的不同值*/
for(j=0;j<=i;j++)
for(k=0;k<=j;k++)
for(l=0;l<=k;l++)
if(number==i*i+j*j+k*k+l*l) /*若满足定理要求则输出结果*/
{
printf(" %d=%d*%d+%d*%d+%d*%d+%d*%d\n",number,i,i,j,j,k,k,l,l);
exit(0);
}
}
本回答由网友推荐
#include<stdlib.h>
void main()
{
int number,i,j,k,l;
printf("Please enter a number=");
scanf("%d",&number); /*输入整数*/
for(i=1;i<number/2;i++) /*穷举法。遍历大于1的自然数,试算i,j,k,l的不同值*/
for(j=0;j<=i;j++)
for(k=0;k<=j;k++)
for(l=0;l<=k;l++)
if(number==i*i+j*j+k*k+l*l) /*若满足定理要求则输出结果*/
{
printf(" %d=%d*%d+%d*%d+%d*%d+%d*%d\n",number,i,i,j,j,k,k,l,l);
exit(0);
}
}
本回答由网友推荐
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询