四平方和
来源:互联网 发布:纳斯达克100基金 知乎 编辑:程序博客网 时间:2024/05/02 18:17
四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多四个正整数的平方和。如果把 00 包括进去,就正好可以表示为四个数的平方和。
比如:
5 = 0^2 + 0^2 + 1^2 + 2^2=0
7 = 1^2 + 1^2 + 1^2 + 2^2=7
则对于一个给定的正整数 n,可以表示为:n = a^2 + b^2 + c^2 + d^2
你需要求出 字典序 最小的一组解 a,b,c,d
字典序大小:从左到右依次比较,如果相同则比较下一项,直到有一项不同,较小的一方字典序更小,反之字典序更大,所有项均相同则二者字典序相同。
样例输入2
比如:
5 = 0^2 + 0^2 + 1^2 + 2^2=0
7 = 1^2 + 1^2 + 1^2 + 2^2=7
则对于一个给定的正整数 n,可以表示为:n = a^2 + b^2 + c^2 + d^2
你需要求出 字典序 最小的一组解 a,b,c,d
字典序大小:从左到右依次比较,如果相同则比较下一项,直到有一项不同,较小的一方字典序更小,反之字典序更大,所有项均相同则二者字典序相同。
输入格式
程序输入为一个正整数 N(1≤N≤5000000)。
输出格式
输出四个非负整数 a,b,c,d中间用空格分开。
样例输入1
5
样例输出1
0 0 1 2
样例输入2
12
样例输出2
0 2 2 2
AC码:
#include<stdio.h>#include<cmath> int main(){int n,a,b,c,d;scanf("%d",&n);for(a=0;a<=sqrt(n);a++){for(b=0;b<=sqrt(n);b++){for(c=0;c<=sqrt(n);c++) {d=sqrt(n-(a*a+b*b+c*c));if(a*a+b*b+c*c+d*d==n){printf("%d %d %d %d",a,b,c,d);return 0; } } }}return 0;}
注意d应该通过计算得到,否则会超时阅读全文
0 0
- 四平方和
- 四平方和
- 四平方和
- 四平方和
- 四平方和
- 四平方和
- 四平方和
- 四平方和
- 四平方和
- 四平方和
- 四元数/四平方和定理
- 2016蓝桥杯 四平方和
- 蓝桥杯 四平方和
- 蓝桥杯省赛题 四平方和
- 蓝桥杯-四平方和
- 四平方和蓝桥杯2016
- 蓝桥杯 四平方和
- 蓝桥杯:四平方和
- ajax 跨域访问java 带请求头
- 去掉标题栏,全屏
- Linq语法入门
- python发邮件的使用方法!
- 数据结构学习总结 —— 1.数据结构绪论
- 四平方和
- Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果
- java中方法的声明及方法修饰符
- Tomcat中文乱码的问题
- 取消Visual Assist工具助手中的拼写检查
- MySQL锁系列(九)之 long transaction
- tcp协议经常用,但是udp协议好像没接触过,udp协议怎么用?用在什么场合?
- xcode8.3.3中Cocoapods的使用
- 线程的状态及转换(java多线程基础)