1003: 【入门】编程求1+3+5+...+n

本文介绍了如何使用C++编写程序来计算1到n(n为奇数)的等差奇数序列之和。代码中运用了for循环实现,通过示例给出了输入99时的输出为2500。
题目描述

编程求1+3+5+...+n

输入

输入一行,只有一个整数n (1<=n<=9999) 这里n为奇数。

输出

输出只有一行

样例输入 复制
99
样例输出 复制 
2500
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    int sum=0;
    for(int i=1;i<=n;i+=2){
        sum+=i;
    }
    cout << sum;
}

 

### 递归实现 1+3+5+...+n 的 C++ 编程C++ 中,可以通过递归方式实现对奇数序列的。对于问题 `1 + 3 + 5 + ... + n`(其中 `n` 是一个正奇数),可以将整个问题拆解为当前项加上前一项的,直到递归到最小的奇数 1 为止。 以下是一个完整的递归实现示例: ```cpp #include <iostream> using namespace std; // 定义递归函数,用于计算从 1 到 n 的奇数 int sumOdd(int n) { if (n == 1) { return 1; // 递归终止条件 } else { return n + sumOdd(n - 2); // 递归调用 } } int main() { int n; cout << "请输入一个正奇数 n: "; cin >> n; if (n % 2 == 0) { cout << "输入的不是正奇数,请重新运行程序并输入正确的值!" << endl; return 1; } int result = sumOdd(n); cout << "1 + 3 + 5 + ... + " << n << " 的: " << result << endl; return 0; } ``` #### 程序说明: - **递归函数 `sumOdd`**:该函数接受一个整数 `n`,表示当前需要加上的最大奇数。如果 `n == 1`,则返回 1,这是递归的终止条件。否则,它会返回当前奇数 `n` 加上前一个奇数 `n - 2` 的。 - **主函数 `main`**:负责输入处理,并验证用户输入是否为正奇数。如果输入错误,则提示用户重新运行程序。 此方法避免了使用循环结构,完全依赖递归来完成累加操作,体现了递归算法的设计思想[^4]。 --- ### 示例运行: 假设用户输入 `n = 9`,程序将计算 `1 + 3 + 5 + 7 + 9 = 25`。 --- ### 注意事项: - 输入必须为正奇数,否则程序会提示错误。 - 递归深度受限于栈空间,因此不适用于非常大的 `n` 值。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值