四平方和(Java)(循环)

本文介绍了一种用于查找四个整数的平方和等于给定整数n的算法。通过使用Scanner类读取输入,算法首先计算n的平方根,然后通过四层循环遍历可能的整数组合,直到找到满足条件的四个整数。找到解决方案后,算法将这四个整数按降序排列并打印。
import java.util.Scanner;
public class Main {
 public static void main(String[] args) {
  Scanner sc=new Scanner(System.in);
  int n=sc.nextInt();
  int a,b,c,d;
  int sqrt=(int) Math.sqrt(n);
  for(a=0;a<=sqrt;a++)
   for (b = a; b<=sqrt; b++) 
    for (c= 0; c<=sqrt; c++) 
     for (d= 0; d<=sqrt; d++) 
     if(n==a*a+b*b+c*c+d*d)
     {
      if(c>d)
      {
       int temp=d;
       d=c;
       c=temp;
      }
      System.out.print(a+" "+b+" "+c+" "+d);
      return;
     }
 }
}
7
1 1 1 2
### 实现平方和定理的Python代码 为了验证平方和定理,即任意自然数可以表示成最多个整数的平方之和,下面提供了一种通过穷举法来寻找符合条件的个整数的方法[^1]。 ```python #!/usr/bin/python3 # -*- coding: utf-8 -*- # @desc: 验证平方和定理 def find_four_squares(number): """ 查找给定自然数由个整数平方组成的组合。 参数: number (int): 用户输入的一个自然数 返回: tuple or None: 如果找到合适的个整数组合则返回该元组;否则返回None """ for x1 in range(int(number**0.5), -1, -1): for x2 in range(int((number-x1*x1)**0.5), -1, -1): for x3 in range(int((number-x1*x1-x2*x2)**0.5), -1, -1): x4 = (number-x1*x1-x2*x2-x3*x3)**0.5 if x4.is_integer(): return (x1, x2, x3, int(x4)) return None if __name__ == "__main__": try: num_input = int(input("请输入一个正整数:")) result = find_four_squares(num_input) if result is not None: print(f"{num_input}={result[0]}²+{result[1]}²+{result[2]}²+{result[3]}²") else: print("未找到满足条件的结果") except ValueError as e: print("输入错误,请确认您输入的是有效的正整数。") ``` 这段代码定义了一个`find_four_squares()`函数用于查找能够组成目标自然数n的最大可能值作为第一个变量x1,并依次减少直到最小可能性(-1),接着对于剩余部分继续尝试其他三个变量x2,x3,x4的可能性直至成功匹配或遍历结束。当找到了一组解时立即停止搜索并输出结果[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值