c语言,输出能写成两个数平方和的所有三位数
疑问是下面这个怎样避免两个平方和相等的重复情况?#include"stdio.h"#include"math.h"main(){intn,i=0,a,b;for(n=10...
疑问是下面这个怎样避免两个平方和相等的重复情况?
#include "stdio.h"
#include "math.h"
main()
{int n,i=0,a,b;
for(n=100;n<=999;n=n+1)
for(a=1;a<=32;a=a+1)
for(b=1;b<=a;b=b+1)
if(n==(a+b)*(a+b)-2*a*b)
{i=i+1;
printf("%2d %2d %d ",a,b,n);
if(i%4==0) printf("\n");
}
} 展开
#include "stdio.h"
#include "math.h"
main()
{int n,i=0,a,b;
for(n=100;n<=999;n=n+1)
for(a=1;a<=32;a=a+1)
for(b=1;b<=a;b=b+1)
if(n==(a+b)*(a+b)-2*a*b)
{i=i+1;
printf("%2d %2d %d ",a,b,n);
if(i%4==0) printf("\n");
}
} 展开
7个回答
展开全部
当判定n是循环相加和的数后,就直接跳出循环,因为后面的循环没有意义了。这样就可以避免
int flag = 0;
for(n=100;n<=999;n=n+1)
{
for(a=1;a<=32;a=a+1)
{
for(b=1;b<=a;b=b+1)
if(n==(a+b)*(a+b)-2*a*b)
{i=i+1;
printf("%2d %2d %d ",a,b,n);
if(i%4==0) printf("\n");
flag=1;
break;
}
if (flag == 1)
{
flag = 0;
break;
}
}
}
int flag = 0;
for(n=100;n<=999;n=n+1)
{
for(a=1;a<=32;a=a+1)
{
for(b=1;b<=a;b=b+1)
if(n==(a+b)*(a+b)-2*a*b)
{i=i+1;
printf("%2d %2d %d ",a,b,n);
if(i%4==0) printf("\n");
flag=1;
break;
}
if (flag == 1)
{
flag = 0;
break;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改成函数调用,可轻松解决!
即把检查一个n是否存在放到一个函数中,只要检查通过,就立即返回就好了。
即把检查一个n是否存在放到一个函数中,只要检查通过,就立即返回就好了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
#include "math.h"
main()
{int n,i=0,a,b;
for(n=100;n<=999;n=n+1)
for(a=1;a<=32;a=a+1)
for(b=a;b<=32;b=b+1)(改这行就行了)
if(n==(a+b)*(a+b)-2*a*b)
{i=i+1;
printf("%2d %2d %d ",a,b,n);
if(i%4==0) printf("\n");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
#include "math.h"
main()
{int n,i=0,a,b;
for(n=100;n<=999;n=n+1)
for(a=1;a<=32;a=a+1)
for(b=1;b<=a;b=b+1)
if(n==(a+b)*(a+b)-2*a*b)
{i=i+1;
printf("%2d %2d %d ",a,b,n);
if(i%4==0) printf("\n");
n=n+1;//加上这个应该就可以了
}
}
#include "math.h"
main()
{int n,i=0,a,b;
for(n=100;n<=999;n=n+1)
for(a=1;a<=32;a=a+1)
for(b=1;b<=a;b=b+1)
if(n==(a+b)*(a+b)-2*a*b)
{i=i+1;
printf("%2d %2d %d ",a,b,n);
if(i%4==0) printf("\n");
n=n+1;//加上这个应该就可以了
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用一个数组记录这个三位数,然后每次和这个数组内的数比较,不相同就输出
PS:为何平方和不直接用n==a*a+b*b?对于计算机来说还减少计算步骤
PS:为何平方和不直接用n==a*a+b*b?对于计算机来说还减少计算步骤
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询