四平方和蓝桥杯Java_蓝桥杯-四平方和问题
更多精彩文章请关注公众号『大海的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_蓝桥杯-四平方和问题相关推荐
- 搭积木蓝桥杯java_蓝桥杯:搭积木
小明最近喜欢搭数字积木, 一共有10块积木,每个积木上有一个数字,0~9. 搭积木规则: 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小. 最后搭成4层的金字塔形,必须用完所有的积木. ...
- 容我喝一杯 java_花一杯茶的时间,学会Java反射(实用篇)
前言 之前,我写了一篇关于java反射的使用--花一杯茶的时间,学会Java反射(基础篇),今天就拿一些实例和应用给大家看看如何在项目中用反射. 实例 反射可以提高代码的扩展性,低耦合,高内聚.就拿工 ...
- 递增三元组蓝桥杯c语言,蓝桥-递增三元组-蓝桥
蓝桥-递增三元组-蓝桥 蓝桥-递增三元组-蓝桥 手动求解一下会发现,B数组是关键 若固定b = B[i] a中的可能的取值是:a0 ----- at小于等于b的元素下标(小于b的个数) c中的可能取值 ...
- 蓝桥杯四平方和Java_蓝桥杯 四平方和
题目:四平方和 看到这个题目,第一个思路就是: 枚举abcd的值,然后判断它们的平方和是不是等于N. 我们可以分析一下abcd的枚举范围: a : 0 ~ sqrt( 5000000 / 4 ) b ...
- 15元钱一杯咖啡,喝完后两个空杯换一杯,问:你有100元钱,最多可以喝到几杯咖啡
15元钱一杯咖啡,喝完后两个空杯换一杯,问:你有100元钱,最多可以喝到几杯咖啡 public static void main(String args[]){int count = 100/15; ...
- 25.有5个人做在一起, 问第五个人多少岁? 他说比第四个人大2岁. 问第四个人岁数, 他说比第是三个人大2岁. 问第三个人, 又说比第二人大两岁. 问第二个人, 说比第一个人大两岁. 最后问第一个人
程序书算法精题–JS版 有5个人做在一起, 问第五个人多少岁? 他说比第四个人大2岁. 问第四个人岁数, 他说比第是三个人大2岁. 问第三个人, 又说比第二人大两岁. 问第二个人, 说比第一个人大两岁 ...
- 【灯哥开源四足机器人】推荐一个开源四足机器狗项目,8自有度,两个舵机控制一个腿,apache开源协议的,已经迭代了好多个版本了,设计的非常好。有官方淘宝店,没有3D打印机的可以购买散装零件自己组装
目录 前言 1,关于[灯哥开源四足机器人] 2,使用py-apple 3,总结 前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/detail ...
- CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象
CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象 1.打开第一章的界面如下图: 2.把之前的代码稍作修改 Sub 第一个插件()Dim zongShu ...
- 欧姆龙PLC码垛程序 电机:四个雷塞闭环步进电机,四个汇川伺服电机,总共八个电机。 PLC:CP1H-EX40DT-D,八个轴就用了两个PLC,还有跟上位机通讯
欧姆龙PLC码垛程序(某上市公司设备),电机:四个雷塞闭环步进电机,四个汇川伺服电机,总共八个电机. PLC:CP1H-EX40DT-D,八个轴就用了两个PLC,还有跟上位机通讯. 图四是机台俯视图 ...
- 计算机四新知识考试题库答案,科目四题库一共多少题
科目四题库一共多少题 科目四,又称科目四理论考试.驾驶员理论考试,是机动车驾驶证考核的一部分.下面是小编为大家带来的.关于科目四题库一共多少题的知识,欢迎阅读. 科目四新增194道题,从900道题更新 ...
最新文章
- 网络编程试卷选择解析
- 窃隐私、放高利贷,输入法的骚操作真不少!
- MYSQL 看书笔记
- Web前端开发笔记——第二章 HTML语言 第七节 表格标签
- WebGL(五)——WEBGL缓冲区,绘制三角形
- javascript 数组求交集/差集/并集/过滤重复
- Harbor:私有企业级Registry仓库--快速搭建
- 为什么你的支付宝芝麻信用分就是不涨?
- ssas 分区 设置_分区SSAS多维数据集的好处
- VIM编辑器使用图解
- 视频质量,分辨率,码率之间的关系 2
- 惠普打印机驱动服务器系统,在打印机服务器(系统WIN2003)上安装了HP5100 打印机,客户机系统WIN7 64位,现没法添加HP5100的驱动...
- 华为认证hcia含金量_华为hcna认证含金量高吗?
- 如何在手机或平板上编写代码?
- 01-Lambert 漫反射
- 【Android 逆向】ART 脱壳 ( dex2oat 脱壳 | /art/dex2oat/dex2oat.cc#Dex2oat 函数源码 )
- 详解ArcGIS Server瓦片合并
- 你必须知道alexa排名的重要性
- 字体修改的一些心得以及方法分享
- 量化交易 聚宽 布林带策略
热门文章
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,ListT转JSON,JSON转ListT,JSON转C#对象...
- Hyper-v 2.0
- 大家一起来谈论C#的前途
- javascript 判断数据类型的几种方法
- Confluence 6 配置边栏
- 数据挖掘——统计学分析(一:数据的整理与图示表示)
- ES(elasticsearch)备份还原脚本
- 2012-11-26 → 2012-12-02 周总结:项目又有新需求了,很兴奋
- 升45武器并不一定大黑铁 自然+13的飞魂 (传奇3G)
- 为什么手工drop_caches之后cache值并未减少?