gpt4 book ai didi

java - 如何以不同的方式编写这部分代码?

转载 作者:行者123 更新时间:2023-12-02 04:14:35 25 4
gpt4 key购买 nike

import java.util.*;

public class something {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int kvadratek, a, b;
a = sc.nextInt();
b = sc.nextInt();


--a;
--b;


if(a>b) {

kvadratek=b;
b=a;
a=kvadratek;

System.out.println((a*(a+1)*(2*a+1)/6-((a+1)*a/2)*(a+b)+(a+1)*a*b));
}


else {

System.out.println(a*(a+1)*(2*a+1)/6-((a+1)*a/2)*(a+b)+(a+1)*a*b);
}
}
}

我是java编码新手,我有一个问题:我是否可以编写这一部分

kvadratek=b;
b=a;
a=kvadratek;

不同,这样它就会给我与其他部分相同的结果。可以用if、while语句来实现吗?如果我插入

,实际上我不需要代码的 else 部分
kvadratek=b; 
b=a;
a=kvadratek;

但是有办法改变这部分吗?

最佳答案

为了避免重复代码,第一件事是将其提取到一个方法中:

private static int compute(int a, int b) {
return (a*(a+1)*(2*a+1)/6-((a+1)*a/2)*(a+b)+(a+1)*a*b);
}

现在您希望 b 成为两个数字中最大的一个,而 a 成为另一个数字。您可以使用 Math.maxMath.min,而不是交换它们:

a = sc.nextInt() - 1;
b = sc.nextInt() - 1;

System.out.println(compute(Math.min(a, b), Math.max(a, b));

关于java - 如何以不同的方式编写这部分代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33456954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com