更多精彩文章请关注公众号『大海的BLOG』

问题:

四平方和定理,又称为拉格朗日定理:

每个正整数都可以表示为至多4个正整数的平方和。

如果把0包括进去,就正好可以表示为4个数的平方和。

比如:

5 = 0^2 + 0^2 + 1^2 + 2^2

7 = 1^2 + 1^2 + 1^2 + 2^2 **

**

对于一个给定的正整数,可能存在多种平方和的表示法。

要求你对4个数排序:

0 <= a <= b <= c <= d

并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法

程序输入为一个正整数N (N<5000000)

要求输出4个非负整数,按从小到大排序,中间用空格分开

例如,输入:

5

则程序应该输出:

0 0 1 2

再例如,输入:

12

则程序应该输出:

0 2 2 2

再例如,输入:

773535

则程序应该输出:

1 1 267 838

资源约定:

峰值内存消耗 < 256M

CPU消耗 < 3000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0

注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。

注意: 所有依赖的函数必须明确地在源文件中 #include, 不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

思路:

这题我是暴力输出的,用四个循环,我先前用四个循环是从小加到大,但是超时了。我发现,输入的数越大,输出的前两个数是比较小的,但是后面两个数比较大,于是我把后面两个循环变成从大减到小,于是accept了

实现代码(C)

#include

#include

void solve(long n){

int a[4];

for (a[0]=0; a[0]

for (a[1]=a[0];a[1]

for (a[2]=sqrt(n-a[1]*a[1]-a[0]*a[0]); a[2]>=a[1]; a[2]--) {

for (a[3]=sqrt(n-a[1]*a[1]-a[2]*a[2]-a[0]*a[0])+1; a[3]>=a[2]; a[3]--) {//其实这里加1不加1都一样

if (a[0]*a[0]+a[1]*a[1]+a[2]*a[2]+a[3]*a[3]==n) {

printf("%d %d %d %d\n",a[0],a[1],a[2],a[3]);

return ;

}

}

}

}

}

}

int main(){

long n;

scanf("%ld",&n);

solve(n);

return 0;

}

更多精彩文章请关注公众号『大海的BLOG』

四平方和蓝桥杯Java_蓝桥杯-四平方和问题相关推荐

  1. 搭积木蓝桥杯java_蓝桥杯:搭积木

    小明最近喜欢搭数字积木, 一共有10块积木,每个积木上有一个数字,0~9. 搭积木规则: 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小. 最后搭成4层的金字塔形,必须用完所有的积木. ...

  2. 容我喝一杯 java_花一杯茶的时间,学会Java反射(实用篇)

    前言 之前,我写了一篇关于java反射的使用--花一杯茶的时间,学会Java反射(基础篇),今天就拿一些实例和应用给大家看看如何在项目中用反射. 实例 反射可以提高代码的扩展性,低耦合,高内聚.就拿工 ...

  3. 递增三元组蓝桥杯c语言,蓝桥-递增三元组-蓝桥

    蓝桥-递增三元组-蓝桥 蓝桥-递增三元组-蓝桥 手动求解一下会发现,B数组是关键 若固定b = B[i] a中的可能的取值是:a0 ----- at小于等于b的元素下标(小于b的个数) c中的可能取值 ...

  4. 蓝桥杯四平方和Java_蓝桥杯 四平方和

    题目:四平方和 看到这个题目,第一个思路就是: 枚举abcd的值,然后判断它们的平方和是不是等于N. 我们可以分析一下abcd的枚举范围: a : 0 ~ sqrt( 5000000 / 4 ) b  ...

  5. 15元钱一杯咖啡,喝完后两个空杯换一杯,问:你有100元钱,最多可以喝到几杯咖啡

    15元钱一杯咖啡,喝完后两个空杯换一杯,问:你有100元钱,最多可以喝到几杯咖啡 public static void main(String args[]){int count = 100/15; ...

  6. 25.有5个人做在一起, 问第五个人多少岁? 他说比第四个人大2岁. 问第四个人岁数, 他说比第是三个人大2岁. 问第三个人, 又说比第二人大两岁. 问第二个人, 说比第一个人大两岁. 最后问第一个人

    程序书算法精题–JS版 有5个人做在一起, 问第五个人多少岁? 他说比第四个人大2岁. 问第四个人岁数, 他说比第是三个人大2岁. 问第三个人, 又说比第二人大两岁. 问第二个人, 说比第一个人大两岁 ...

  7. 【灯哥开源四足机器人】推荐一个开源四足机器狗项目,8自有度,两个舵机控制一个腿,apache开源协议的,已经迭代了好多个版本了,设计的非常好。有官方淘宝店,没有3D打印机的可以购买散装零件自己组装

    目录 前言 1,关于[灯哥开源四足机器人] 2,使用py-apple 3,总结 前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/detail ...

  8. CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象

    CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象 1.打开第一章的界面如下图: 2.把之前的代码稍作修改 Sub 第一个插件()Dim zongShu ...

  9. 欧姆龙PLC码垛程序 电机:四个雷塞闭环步进电机,四个汇川伺服电机,总共八个电机。 PLC:CP1H-EX40DT-D,八个轴就用了两个PLC,还有跟上位机通讯

    欧姆龙PLC码垛程序(某上市公司设备),电机:四个雷塞闭环步进电机,四个汇川伺服电机,总共八个电机. PLC:CP1H-EX40DT-D,八个轴就用了两个PLC,还有跟上位机通讯. 图四是机台俯视图 ...

  10. 计算机四新知识考试题库答案,科目四题库一共多少题

    科目四题库一共多少题 科目四,又称科目四理论考试.驾驶员理论考试,是机动车驾驶证考核的一部分.下面是小编为大家带来的.关于科目四题库一共多少题的知识,欢迎阅读. 科目四新增194道题,从900道题更新 ...

最新文章

  1. 网络编程试卷选择解析
  2. 窃隐私、放高利贷,输入法的骚操作真不少!
  3. MYSQL 看书笔记
  4. Web前端开发笔记——第二章 HTML语言 第七节 表格标签
  5. WebGL(五)——WEBGL缓冲区,绘制三角形
  6. javascript 数组求交集/差集/并集/过滤重复
  7. Harbor:私有企业级Registry仓库--快速搭建
  8. 为什么你的支付宝芝麻信用分就是不涨?
  9. ssas 分区 设置_分区SSAS多维数据集的好处
  10. VIM编辑器使用图解
  11. 视频质量,分辨率,码率之间的关系 2
  12. 惠普打印机驱动服务器系统,在打印机服务器(系统WIN2003)上安装了HP5100 打印机,客户机系统WIN7 64位,现没法添加HP5100的驱动...
  13. 华为认证hcia含金量_华为hcna认证含金量高吗?
  14. 如何在手机或平板上编写代码?
  15. 01-Lambert 漫反射
  16. 【Android 逆向】ART 脱壳 ( dex2oat 脱壳 | /art/dex2oat/dex2oat.cc#Dex2oat 函数源码 )
  17. 详解ArcGIS Server瓦片合并
  18. 你必须知道alexa排名的重要性
  19. 字体修改的一些心得以及方法分享
  20. 量化交易 聚宽 布林带策略

热门文章

  1. JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,ListT转JSON,JSON转ListT,JSON转C#对象...
  2. Hyper-v 2.0
  3. 大家一起来谈论C#的前途
  4. javascript 判断数据类型的几种方法
  5. Confluence 6 配置边栏
  6. 数据挖掘——统计学分析(一:数据的整理与图示表示)
  7. ES(elasticsearch)备份还原脚本
  8. 2012-11-26 → 2012-12-02 周总结:项目又有新需求了,很兴奋
  9. 升45武器并不一定大黑铁 自然+13的飞魂 (传奇3G)
  10. 为什么手工drop_caches之后cache值并未减少?