2020-09-11

95 篇文章 2 订阅
7 篇文章 0 订阅

已知整数n、m取值范围为{1,2,…,k},1<=k<=10000,且n 2 ^2 2-nm-m 2 ^2 2=1 求n 2 ^2 2+m 2 ^2 2的最大值

采用Python编程如下:

try:
    k = int(input("请输入正整数k:"))
    if k < 1:
        print("输入错误!")
    s_max, nr, mr = 0, 0, 0
    for n in range(1, k + 1):
        for m in range(1, k + 1):
            if pow(n, 2) - n * m - pow(m, 2) == 1:
                s = pow(m, 2) + pow(n, 2)
                if s_max < s:
                    s_max, nr, mr = s, n, m
    print("{0}*{0}+{1}*{1}={2}".format(nr, mr, s_max))
except ValueError:
    print("输入错误!")
D:\Python\study\venv\Scripts\python.exe D:/Python/study/20200908/test2.py
请输入正整数k:1995
1597*1597+987*987=3524578

Process finished with exit code 0

采用Java编程如下:

package test;

import java.util.Scanner;

public class maxx {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			System.out.println("请输入一个正整数:");
			Scanner input = new Scanner(System.in);
			int k =input.nextInt();
			int rn=0,rm=0,sum=0,temp=0;
			for(int n=1;n<=k;n++) {
				for(int m=1;m<=k;m++) {
					if(Math.pow((n*n-n*m-m*m),2)==1) {
						temp=n*n+m*m;
						if(sum<temp) {
							sum=temp;rn=n;rm=m;
						}
					}
				}
			}
		    System.out.print(rn+"*"+rn+"+"+rm+"*"+rm+"="+sum);	
		}catch(Exception e) {
			System.out.print("输入错误!");
		}
	}
}
请输入正整数k:
1995
1597*1597+987*987=3524578

运算速度Java比Python要快得多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值