P8635 [蓝桥杯 2016 省 AB] 四平方和:
升序嵌套循环:
该程序通过三层升序嵌套循环(其中 j 从 i 开始,k 从 j 开始)来寻找四个非负整数 i,j,k,l,确保每个循环中的当前值的平方和小于输入的 n,并在找到第一个使它们的平方和等于 n 的组合时输出结果并结束。
#include<iostream>
#include<math.h>
using namespace std;
int sq(int n){
return n*n;
}
int main(){
int n;
cin>>n;
for(int i=0;sq(i)<n;i++){
for(int j=i;sq(i)+sq(j)<n;j++){
for(int k=j;sq(i)+sq(j)+sq(k)<n;k++){
int l=(int)(sqrt(n-sq(i)-sq(j)-sq(k)));
if((l*l+k*k+i*i+j*j)==n){
printf("%d %d %d %d",i,j,k,l);
return 0;
}
}
}
}
return 0;
}