请帮我优化下面代码:
时间: 2024-02-27 13:57:57 浏览: 19
```java
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int sum = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println(sum);
}
```
代码本身已经很短,但仍然可以进行一些优化:
1. 可以在输入时直接判断输入的数是否为偶数,如果是,则直接输出结果为 `(1 + n) / 2 * (n / 2)`,否则输出结果为 `((1 + n) / 2 ) * (n / 2)`。
2. 可以使用等差数列求和公式,直接计算出结果。等差数列的首项为 2,公差为 2,末项为 n(当 n 为偶数时),所以结果为 `(2 + n) * n / 4`。
根据以上两种优化思路,代码可以写成以下两种形式:
```java
// 方法一:直接计算
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
if (n % 2 == 0) {
System.out.println((1 + n) / 2 * (n / 2));
} else {
System.out.println(((1 + n) / 2 ) * (n / 2));
}
}
```
```java
// 方法二:使用等差数列求和公式
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int sum = (2 + n) * n / 4;
if (n % 2 != 0) {
sum -= (n + 1) / 2;
}
System.out.println(sum);
}
```
两种方法的思路都很简单,但是可以大大提高代码的可读性和计算效率。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)