第七届 蓝桥杯 省赛 第八题 四平方和
四平方和定理,又称为拉格朗日定理:
每个正整数都可以表示为至多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
分析:直接四层循环可能会超时,可以考虑先将两个数能构成的平方和保存在map里面,如果在前两层循环的时候,发现剩下的数并不能由两个数的平方构成,就直接continue跳过~否则就判断第三层循环,然后用sqrt(num - a * a - b * b - c * c)算出最后一个数temp,看它是否为整数~如果是整数就输出~并且退出程序~
#include <iostream> #include <cmath> #include <map> using namespace std; int main() {int num;cin >> num;int n = sqrt(num);map<int, int> m;for (int a = 0; a <= n; a++) {for (int b = a; b <= n; b++) {m[a * a + b * b] = 1;}}for (int a = 0; a <= n; a++) {for (int b = a; b <= n; b++) {if (m[num - a * a - b * b] != 1) continue;for (int c = b; c <= n; c++) {double temp = sqrt(num - a * a - b * b - c * c);if(temp == (int)temp) {cout << a << " " << b << " " << c << " " << (int)temp;return 0;}}}}return 0; }
第七届 蓝桥杯 省赛 第八题 四平方和相关推荐
- 第七届蓝桥杯b组第八题-四平方和
四平方和 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和. 如果把0包括进去,就正好可以表示为4个数的平方和. 比如: 5 = 0^2 + 0^2 + 1^2 + 2 ...
- 第七届 蓝桥杯 省赛 第六题 方格填数(next_permutation)
填入0~9的数字.要求:连续的两个数字不能相邻. (左右.上下.对角都算相邻) 一共有多少种可能填写的方案? 请填写表示方案数目的整数- 分析:从左到右从上到下标为0-9,将a[10]中的数字依次填入 ...
- 2015年第七届蓝桥杯省赛C语言B组
2015年第七届蓝桥杯省赛C语言B组 题目来源:蓝桥杯 作者:GGG166 第一题: 题目:奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就 ...
- java蓝桥杯凑算是,第七届蓝桥杯JAVA B组真题解析-凑算式(第三题)
第七届蓝桥杯JAVA B组真题解析-凑算式(第三题) 凑算式 A+B/C+DEF/GHI =10 (如果显示有问题,可以参见[图1.jpg]) 这个算式中AI代表19的数字,不同的字母代表不同的数字. ...
- 太空大战-第14届蓝桥杯国赛Scratch真题中级组第6题
[导读]:超平老师的<Scratch蓝桥杯真题解析100讲>已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第148讲. 太空大战,本题是2023年5月28日上午 ...
- 2016第七届蓝桥杯省赛C/C++ B组试题解析整理
引言 今天是蓝桥杯省赛举办的日子,是一个很激动人心的时刻,也是我第一次参加蓝桥杯,从上午9点到下午1点,做题时间历经4个小时,想想就过瘾. 下面整理一下这次比赛的题目. *注:此处为了省事儿,全是用J ...
- 第七届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
目录 A.有奖猜谜 B.煤球数目 C.平方怪圈 D.骰子游戏 E.分小组 F.凑算式 G.搭积木 H.冰雹数 I.四平方和 J.密码脱落 A.有奖猜谜 小明很喜欢猜谜语. 最近,他被邀请参加了X星球的 ...
- 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - B. 生日蜡烛
生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始过生日par ...
- 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - H. 四平方和
题目 四平方和 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和. 如果把0包括进去,就正好可以表示为4个数的平方和. 比如: 5 = 02 + 02 + 12 + 2 ...
最新文章
- 云端迁移需谨遵四大关键步骤
- 为Apache动态增加模块
- 机器人网首页应用实例工业自动化 EtherCAT 技术在库卡机器人控制系统上的应用
- 使用Java 8 Lambda清理JUnit Throwable-Tests
- opencv实现几幅图像拼接成一整幅大图
- TensorFlow 2.4 发布
- R计算偏相关性示例教程
- linux内存映射对开发版刷屏,TQ6410/OK6410裸机LCD刷屏程序借助UBOOT来执行
- 基于原子哥开发套件,STM32应用开发的学习笔记
- 前端的几种数据存储方式
- Linux与数据库简要说明
- 安装Linux详细教程
- 服务器项目技术方案,直播项目技术实现方案(工作室)
- JAVA基础核心技术总结(2)--基本语法
- 传输层之UDP头部解析、UDP特点TCP头部解析、TCP特点
- 天龙八部武夷千年冰魄
- 通过vue-codemirror和CodeMirror将代码编辑器添加到web项目中
- 男人三十岁需要做到的事
- android build.ninja,Android中的Ninja简介
- 中国制药设备行业销售现状及竞争策略建议报告2022-2027年版