输入一个正整数 n(n<=100000),求 1到n的奇数和和偶数和。 输入格式: 在一行
时间: 2023-05-26 16:02:26 浏览: 366
输入一个正整数 n。
输出格式: 在一行输出奇数和和偶数和,用空格隔开。
输入样例:
5
输出样例:
9 6
【题目分析】
这道题可以看成是基础的数学题目,需要对奇偶数的性质进行一定的推断。
如果从 1 到 n 的每个数都去判断奇偶性,那么时间复杂度即可达到 $O(n)$,相比较而言有些大,所以我们可以有以下思路:
首先,我们需要明确一个结论:
$$ 1 + 3 + 5 + … + (2n-1) = n^2 \\ 2 + 4 + 6 + … + 2n = n*(n + 1) $$
因为从 1 到 n 的数,总共有 n 个奇数和 n 个偶数。所以奇数和的和一定等于 $(1+3+…+(2n-1))$ 的和,而偶数和的和一定等于 $(2+4+…+2n)$ 的和。而根据以上的结论,利用数列求和公式,就可以快速计算出奇偶数和的结果,并输出。
时间复杂度:$O(1)$。
相关问题
输入一个正整数 n(n<=100000),求 1到n的奇数和和偶数和。 输入格式: 在一行中输入不超过100000的一个正整数njava
当你需要计算从1到n的所有奇数之和(odd sum)和所有偶数之和(even sum),你可以通过简单的数学公式和循环结构来实现。这里是一个基本的步骤:
1. 初始化两个变量,`odd_sum`用于存储奇数总和,初始值为0;`even_sum`用于存储偶数总和,初始值也为0。
2. 使用一个for循环,从1遍历到n(包括n)。对于每个数i:
- 检查i是否为奇数(即 i % 2 == 1)。如果是奇数,则将其加到`odd_sum`上;
- 如果不是奇数(即 i % 2 == 0),则将其加到`even_sum`上。
3. 循环结束后,`odd_sum`就是1到n所有奇数的和,`even_sum`就是所有偶数的和。
这是一个简单的Java代码示例:
```java
import java.util.Scanner;
public class SumOddEven {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int oddSum = 0;
int evenSum = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
oddSum += i;
} else {
evenSum += i;
}
}
System.out.println("奇数和: " + oddSum);
System.out.println("偶数和: " + evenSum);
}
}
```
java 输入一个正整数 n(n<=100000),求 1到n的奇数和和偶数和
以下是Java代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
long sumOdd = 0; // 存储奇数和
long sumEven = 0; // 存储偶数和
for (int i = 1; i <= n; i++) {
if (i % 2 == 1) { // 奇数
sumOdd += i;
} else { // 偶数
sumEven += i;
}
}
System.out.println("奇数和为:" + sumOdd);
System.out.println("偶数和为:" + sumEven);
}
}
```
先输入正整数n,然后再使用for循环计算1到n中的奇数和和偶数和。如果i除以2的余数为1,即i为奇数,则将i加到奇数和中;否则,将i加到偶数和中。最后输出奇数和和偶数和即可。
阅读全文