餐厅网站建设,画图软件在线,学校学院网站建设目标,网站开发人员的岗位职责题目#xff1a;四平方和定理#xff0c;又称为拉格朗日定理#xff1a;每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去#xff0c;就正好可以表示为4个数的平方和。比如#xff1a;5 0^ 2 0^ 2 1^ 2 2^27 1^ 2 1^ 2 1^ 2 2^2
#xff08;^符号表…题目四平方和定理又称为拉格朗日定理每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去就正好可以表示为4个数的平方和。比如5 0^ 2 0^ 2 1^ 2 2^27 1^ 2 1^ 2 1^ 2 2^2
^符号表示乘方的意思对于一个给定的正整数可能存在多种平方和的表示法。要求你对4个数排序0 a b c d并对所有的可能表示法按 a,b,c,d 为联合主键升序排列最后输出第一个表示法程序输入为一个正整数N (N5000000)要求输出4个非负整数按从小到大排序中间用空格分开例如输入5则程序应该输出0 0 1 2再例如输入12则程序应该输出0 2 2 2再例如输入773535则程序应该输出1 1 267 838分析因为题目只需要要一个升序排列的数列那么我们让每一次循环的开始值都是上一个循环的结束点这样我们就能确保是升序首先要建三个循环分别代表前三个数那第四个数就是n减去前面三个数的开方第一个数的取值范围是n的开方第二个取值范围是n减去第一个数的开方第三个取值范围是n减去第一个数和第二个数的开方第四个 取值范围是n减去第一个数和第二个数及第三个数的开方到最后如果四个加起来等于n那么直接输出并结束主函数。步骤用到了math.sqrt开平方的函数package 刷题211;import java.util.Scanner;public class 四平方和 {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();sc.close();for (int i 0; i Math.sqrt(n); i) {for (int j i; j Math.sqrt(n - i * i); j) {for (int j2 j; j2 Math.sqrt(n - i * i - j * j); j2) {int si (int) Math.sqrt(n - i * i - j * j - j2 * j2);if (n i * i j * j j2 * j2 si * si) {System.out.println(i j j2 si);return;}}}}}}