1到n有多少奇数,多少偶数公式

n为奇数时,有(n+1)/2项奇数,(n-1)/2项偶数
n为偶数时,有n/2项奇数,n/2项偶数

这是一个典型的累加问题,需要分别计算从 1 到 n 的所有奇数之和以及偶数之和。我们可以通过简单的条件判断结合循环结构完成任务。 下面是完整的 Java 实现代码及解析步骤。 --- ### 分析与思路 1. 首先初始化两个变量用于存储奇数和与偶数和的结果。 2. 使用 `for` 循环遍历从 1 到 n 的每一个数字,并对每个数字进行检查: - 如果当前数字是奇数 (`i % 2 != 0`),将其加入奇数和; - 否则将其加入偶数和。 3. 最后打印出这两个累计值即可。 时间复杂度为 O(n),空间复杂度为 O(1)。 --- ### 示例代码 以下是用 Java 编写的解决方案: ```java import java.util.Scanner; public class OddEvenSum { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 输入一个正整数n <= 100000 System.out.print("请输入一个正整数n (<= 100000): "); int n = scanner.nextInt(); if (n > 100000 || n < 1) { System.out.println("输入范围错误!"); return; } long oddSum = 0; // 存储奇数和 long evenSum = 0; // 存储偶数和 for (int i = 1; i <= n; i++) { if (i % 2 == 0) { // 偶数 evenSum += i; } else { // 奇数 oddSum += i; } } System.out.println("1到" + n + "之间的奇数和为: " + oddSum); System.out.println("1到" + n + "之间的偶数和为: " + evenSum); scanner.close(); } } ``` --- ### 运行示例 假如用户输入 `n=10`,程序输出如下内容: ``` 请输入一个正整数n (<= 100000): 10 110之间的奇数和为: 25 110之间的偶数和为: 30 ``` 这是因为在这个范围内,奇数分别是 [1, 3, 5, 7, 9] 和偶数分别是 [2, 4, 6, 8, 10]. --- ### 提升效率的方式 实际上无需逐一相加也可以直接采用数学公式快速得到答案: - 所有奇数构成等差序列:首 a₁=1、公差 d=2;前 m 公式 S_odd=m×m 其中 m=(n+1)/2. - 对于偶数同样存在类似的简化算法 S_even=n*(n/2). 这种方法可以进一步优化性能尤其是针对更大的数据量情况。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值