首页 > 其他 > 详细

四平方和

时间:2018-06-24 22:55:02      阅读:178      评论:0      收藏:0      [点我收藏+]

技术分享图片

解析

基本解法是暴力枚举,如果暴力枚举四个数的话程序的复杂度就过高了,因此枚举出a,b,c,由此可以计算出c^2,如果c^2开方过后的值(定为flag)再平方后不等于c^2(即根号下c不为整数),那么这组数据就不合法,继续枚举。

反之则直接输出。

代码

#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{
    cin>>n;
    for(int a=0;a<=3000;a++)
    {
        for(int b=a;b<=3000;b++)
        {
            for(int c=b;c<=3000;c++)//题目给的最大值是5000000,所以只考虑根号5000000附近向上取枚举极限 
            {
                int flag=n-(a*a+b*b+c*c);
                int d=sqrt(flag);
                if(d*d!=flag) continue;
                else {
                cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
                goto u;
          }
            }
        }
    }
    u:return 0;
 } 

 

四平方和

原文:https://www.cnblogs.com/KyleDeng/p/9221939.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!