1065:奇数求和

1065:奇数求和

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 50759 通过数: 32940
【题目描述】
计算非负整数m到n(包括m和n)之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。例如 m=3,n=12, 其和则为:3+5+7+9+11=35。

【输入】
两个数 m 和 n,两个数以一个空格分开,其中 0≤m≤n≤300 。

【输出】
输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有奇数的和

【输入样例】
7 15
【输出样例】
55

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a,b;
	int sum=0;
	int i;
	
	cin>>a>>b;
	if(a%2==0) a++;
	for(i=a;i<=b;i+=2)
	sum+=i;
	
	cout<<sum<<endl;
	return 0;
}
### 使用 `while` 循环实现奇数求和C++ 程序 以下是基于需求编写的 C++ 程序,该程序利用 `while` 循环计算指定范围内的所有奇数之和: ```cpp #include <iostream> using namespace std; int main() { int m, n; cin >> m >> n; // 输入起始值 m 和结束值 n int sum = 0; // 初始化累加变量为 0 int i = m; // 设置初始计数值为 m while (i <= n) { // 当前计数值小于等于 n 时继续循环 if (i % 2 == 1) { // 如果当前值是奇数 sum += i; // 将其加入总和 } i++; // 计数值自增 } cout << sum << endl; // 输出最终结果 return 0; } ``` 此代码实现了从 `m` 到 `n` 范围内所有奇数求和功能[^1]。其中,`if (i % 2 == 1)` 是判断当前值是否为奇数的关键逻辑[^2]。 对于样例输入 `7 15`,程序会依次检查并累加范围 `[7, 15]` 中的所有奇数(即 7、9、11、13、15),最后输出它们的和 `55`。 此外,在某些情况下可能需要优化性能。例如,如果已知起点 `m` 不是奇数,则可以直接跳过不必要的偶数检查。这种改进方法如下所示: ```cpp #include <iostream> using namespace std; int main() { int m, n; cin >> m >> n; int sum = 0; int i = m; // 若 m 非奇数,则调整至下一个奇数 if (i % 2 == 0) { i++; } while (i <= n) { sum += i; // 加入总和 i += 2; // 每次增加 2 来确保只处理奇数 } cout << sum << endl; return 0; } ``` 这种方法通过每次步进 2 的方式避免了多余的模运算操作,从而提高了效率[^3]。 ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值