解题思路:
d和c从大数往小数循环
注意事项:
参考代码:
#include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; for(int a=0;a<=1000;a++) { for(int b=a;b<=1000;b++) { if(a*a+b*b>n) break; for (int d=(sqrt(n-a*a-b*b));d>=b;d--) { for(int c=sqrt(n-a*a-b*b-d*d);c>=b;c--) { if(a*a+b*b+c*c+d*d<n) break; if(a*a+b*b+c*c+d*d==n ) { cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl; return 0; } } } } } return 0; }
0.0分
0 人评分
C语言训练-邮票组合问题* (C语言代码)浏览:695 |
点我有惊喜!你懂得!浏览:3885 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:628 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)for循环浏览:1127 |
【数组的距离】 (C语言代码)浏览:740 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1316 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:549 |
本人酷爱递归实现很多问题,这里也是浏览:556 |
C语言程序设计教程(第三版)课后习题6.3 (C++代码)浏览:963 |
母牛的故事 (C语言代码)浏览:1428 |