码迷,mamicode.com
首页 > 其他好文 > 详细

四平方和

时间:2018-06-24 23:45:27      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:暴力枚举   class   main   color   got   else   clu   mes   bit   

技术分享图片

解析

基本解法是暴力枚举,如果暴力枚举四个数的话程序的复杂度就过高了,因此枚举出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;
 } 

 

四平方和

标签:暴力枚举   class   main   color   got   else   clu   mes   bit   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!