题目描述
方程: a^2 + b^2 + c^2 = 1000
这个方程有正整数解吗?有:a,b,c=6,8,30 就是一组解。
求出 a^2 + b^2 + c^2 = n(1<=n<=10000)的所有解,解要保证c>=b>=a>=1。
#include<iostream>
using namespace std;
int main(){
int n,flag;
while(scanf("%d",&n)!=EOF){//有没有大神告诉我这句用c++语法要怎么写呀
flag=0;
for(int a=1;a<32;a++){
for(int b=a;b*b<n;b++){
for(int c=b;c*c<n;c++)
if(a*a+b*b+c*c==n){
flag=1;
cout<<a<<' '<<b<<' '<<c<<endl;}
}
}
if(flag==0)
cout<<"No Solution"<<endl;}
return 0;
}
总收获:利用flag使nosolution不会重复输出