【C++ 程序设计】实战:C++ 实践练习题(31~40)

目录

[31. 数列:s = 1 + 2 + 3 + ... + n](#31. 数列:s = 1 + 2 + 3 + … + n)

[32. 数列:s = 1 - 2 - 3 - ... - n](#32. 数列:s = 1 - 2 - 3 - … - n)

[33. 数列:s = 1 + 2 - 3 + ... - n](#33. 数列:s = 1 + 2 - 3 + … - n)

[34. 数列:s = 1 - 2 + 3 - ... + n](#34. 数列:s = 1 - 2 + 3 - … + n)

[35. 数列:s = 1 + 1/2 + 1/3 + ... + 1/n](#35. 数列:s = 1 + 1/2 + 1/3 + … + 1/n)

[36. 数列:s = 1 - 1/2 - 1/3 - ... - 1/n](#36. 数列:s = 1 - 1/2 - 1/3 - … - 1/n)

[37. 数列:s = 1 + 1/2 - 1/3 + ... + 1/n](#37. 数列:s = 1 + 1/2 - 1/3 + … + 1/n)

[38. 数列:s = 1 - 1/2 + 1/3 + ... - 1/n](#38. 数列:s = 1 - 1/2 + 1/3 + … - 1/n)

[39. 数列:s = 1 + 1/4 + 1/7 + 1/10 ... + 1/(3*n-2)](#39. 数列:s = 1 + 1/4 + 1/7 + 1/10 ... + 1/(3*n-2))

[40. 数列:s = 1 - 1/4 - 1/7 - 1/10 ... - 1/(3*n-2](#40. 数列:s = 1 - 1/4 - 1/7 - 1/10 ... - 1/(3*n-2)



31. 数列:s = 1 + 2 + 3 + ... + n

输入 1 个正整数 n(n<=100) ,计算并输出 1+2+3...+n

cpp 复制代码
#include <iostream>
using namespace std;
int main() {
    int n;
    cin >> n;  // 输入正整数n    
    int sum = n * (n + 1) / 2;  // 高斯求和公式    
    cout << sum << endl;
    return 0;
}

32. 数列:s = 1 - 2 - 3 - ... - n

输入 1 个正整数 n(n<=100) ,计算并输出 1-2-3...-n

cpp 复制代码
#include <iostream>
using namespace std;
int main() {
    int n;
    cin >> n;  // 输入正整数n
    // 计算2到n的和
    int sum_from_2_to_n = (n + 2) * (n - 1) / 2;    
    // 最终结果为1减去上述和
    int result = 1 - sum_from_2_to_n;    
    cout << result << endl;
    return 0;
}

33. 数列:s = 1 + 2 - 3 + ... - n

输入 1 个正整数 n(n<=100) ,计算并输出 1+2-3+...-n

cpp 复制代码
#include <iostream>
using namespace std;
int main() {
    int n;
    cin >> n;  // 输入正整数n
    if (n == 1) {
        cout << 1 << endl;
        return 0;
    }
    if (n == 2) {
        cout << 3 << endl;
        return 0;
    }
    int sum = 1 + 2;  // 前两项的和
    bool negative = true;  // 下一项是否为负    
    for (int i = 3; i <= n; ++i) {
        if (negative) {
            sum -= i;
        } else {
            sum += i;
        }
        negative = !negative;  // 符号交替
    }
    cout << sum << endl;
    return 0;
}

34. 数列:s = 1 - 2 + 3 - ... + n

输入 1 个正整数 n(n<=100) ,计算并输出 1-2+3-...+n

cpp 复制代码
#include <iostream>
using namespace std;
int main() {
    int n;
    cin >> n;  // 输入正整数n
    int sum = 0;
    for (int i = 1; i <= n; ++i) {
        if (i % 2 == 1) {  // 奇数位为正
            sum += i;
        } else {            // 偶数位为负
            sum -= i;
        }
    }
    cout << sum << endl;
    return 0;
}

35. 数列:s = 1 + 1/2 + 1/3 + ... + 1/n

输入 1 个正整数 n(n<=100) ,计算并输出 1+1/2+1/3...+1/n

cpp 复制代码
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
    int n;
    cin >> n;  // 输入正整数n
    double sum = 0.0;
    for (int i = 1; i <= n; ++i) {
        sum += 1.0 / i;  // 每一项都是正数,直接相加
    }
    // 输出结果,保留4位小数
    cout << fixed << setprecision(4) << sum << endl;
    return 0;
}

36. 数列:s = 1 - 1/2 - 1/3 - ... - 1/n

输入 1 个正整数 n(n<=100) ,计算并输出 1-1/2-1/3...-1/n

cpp 复制代码
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
    int n;
    cin >> n;  // 输入正整数n
    // 处理n=1的特殊情况
    if (n == 1) {
        cout << "1.0000" << endl;
        return 0;
    }
    double sum = 1.0;  // 第一项是1
    for (int i = 2; i <= n; ++i) {
        sum -= 1.0 / i;  // 后续各项都是减去1/i
    }
    // 输出结果,保留4位小数
    cout << fixed << setprecision(4) << sum << endl;
    return 0;
}

37. 数列:s = 1 + 1/2 - 1/3 + ... + 1/n

输入 1 个正整数 n(n<=100) ,计算并输出 1+1/2-1/3...+1/n

cpp 复制代码
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
    int n;
    cin >> n;  // 输入正整数n
    double sum = 0.0;
    for (int i = 1; i <= n; ++i) {
        if (i % 2 == 0) {  // 偶数项为正
            sum += 1.0 / i;
        } else {            // 奇数项(除了i=1)为负
            if (i == 1) {
                sum += 1.0;
            } else {
                sum -= 1.0 / i;
            }
        }
    }
    // 输出结果,保留4位小数
    cout << fixed << setprecision(4) << sum << endl; 
    return 0;
}

38. 数列:s = 1 - 1/2 + 1/3 + ... - 1/n

输入 1 个正整数 n(n<=100) ,计算并输出 1-1/2+1/3...-1/n

cpp 复制代码
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
    int n;
    cin >> n;  // 输入正整数n
    double sum = 0.0;
    for (int i = 1; i <= n; ++i) {
        if (i % 2 == 1) {  // 奇数项为正
            sum += 1.0 / i;
        } else {            // 偶数项为负
            sum -= 1.0 / i;
        }
    }
    // 输出结果,保留4位小数
    cout << fixed << setprecision(4) << sum << endl;
    return 0;
}

39. 数列:s = 1 + 1/4 + 1/7 + 1/10 ... + 1/(3*n-2)

输入一个正整数 n ,计算前 n 项之和: 1+1/4+1/7+1/10...+1/(3*n-2)

cpp 复制代码
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
    int n;
    cin >> n;  // 输入正整数n
    double sum = 0.0;
    for (int i = 1; i <= n; ++i) {
        sum += 1.0 / (3 * i - 2);  // 计算第i项并累加
    }
    // 输出结果,保留4位小数
    cout << fixed << setprecision(4) << sum << endl;
    return 0;
}

40. 数列:s = 1 - 1/4 - 1/7 - 1/10 ... - 1/(3*n-2)

输入一个正整数 n ,计算前 n 项之和: 1-1/4-1/7-1/10...-1/(3*n-2)

cpp 复制代码
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
    int n;
    cin >> n;  // 输入正整数n
    if (n == 1) {
        cout << "1.0000" << endl;
        return 0;
    }
    double sum = 1.0;  // 第一项是1
    for (int i = 2; i <= n; ++i) {
        sum -= 1.0 / (3 * i - 2);  // 减去后续各项
    }
    // 输出结果,保留4位小数
    cout << fixed << setprecision(4) << sum << endl;
    return 0;
}
相关推荐
leisoo80973 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
不会代码的小猴3 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
青瓦梦滋4 小时前
传输层UDP/TCP协议
linux·网络·c++·网络协议·tcp/ip·udp
捷瑞电子工坊4 小时前
嵌入式秋招面经:5大核心模块高频考题与实战避坑总结
c语言·stm32·嵌入式工程师·rtos·通信协议·嵌入式面试
一只旭宝4 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
天空'之城5 小时前
C 语言工业级通用组件手写 30:安全内存拷贝组件
c语言·内存拷贝·工业级组件·安全内存操作
coder!mq6 小时前
说几个常见的语法糖?
java·开发语言·算法
gugucoding6 小时前
38. 【Java】Stream API(下):高级操作与性能
java·开发语言
Lhan.zzZ6 小时前
在 Visual Studio 2022 中打造可扩展的动态链接库模块:从零搭建到原理解析
开发语言·c++·visual studio
LuminousCPP7 小时前
数据结构-双向循环链表
c语言·数据结构·笔记·链表