c++求和(sum)

题目:

晨晨最近对一组数中某一段数的和很感兴趣,她想编一道程序,已知一组数,只要输入开始位置s和结束位置e,就能输出这段范围内的数之和。

【输入格式】

第一行,n,表示有n个整数。(n<=100000)

第二行,n个1000以内的整数。

第三行,m,表示有m次询问。(1<=m<=10000)

接下来m行,每行两个数,表示开始和结束的位置。(1<=s<=e<=n) 。

【输出格式】

一行:一个整数。

【输入样例】

10

5 3 2 1 4 5 3 6 9 12

2

2 4

3 5

【输出样例】

6

7

这道题很简单好吧,直接求和,时间不爆(我不理解)

#include<bits/stdc++.h>
using namespace std;
long long n,a[1000005],m,s,e,sum;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    cin>>m;
    for(int i=1;i<=m;i++){
        cin>>s>>e;
        for(int i=s;i<=e;i++){
            sum+=a[i];
        }
        cout<<sum<<endl;
        sum=0;
    }
    
    return 0;
}
 

### 如何用 C++ 编写求和函数 在 C++ 中,编写一个简单的求和函数可以通过定义一个接收两个参数的函数来完成。该函数可以接受任意类型的数值作为输入,并返回它们的总和。以下是基于不同场景下的几种实现方法。 #### 方法一:基本整数求和函数 这是最基础的形式,适用于仅处理整数的情况: ```cpp #include <iostream> // 定义一个简单求和函数 int sum(int a, int b) { return a + b; } int main() { int num1 = 5, num2 = 7; std::cout << "Sum of " << num1 << " and " << num2 << " is " << sum(num1, num2) << std::endl; return 0; } ``` 上述代码展示了如何创建一个名为 `sum` 的函数,用于计算两个整数的和[^1]。 --- #### 方法二:支持多种数据类型的通用求和函数 如果希望函数能适应不同的数据类型(如浮点数、双精度数),则可以利用 **函数模板** 来实现泛型功能: ```cpp #include <iostream> #include <type_traits> // 提供 type traits 支持 // 使用模板定义求和函数 template<typename T> T sum(T a, T b) { static_assert(std::is_arithmetic<T>::value, "Template argument must be an arithmetic type"); return a + b; } int main() { double d1 = 3.5, d2 = 4.8; int i1 = 10, i2 = 20; std::cout << "Sum of integers: " << sum(i1, i2) << std::endl; // 输出 30 std::cout << "Sum of doubles: " << sum(d1, d2) << std::endl; // 输出 8.3 return 0; } ``` 此版本通过模板技术实现了对不同类型的支持,同时借助静态断言确保传入的是算术类型的数据[^3]。 --- #### 方法三:带有默认参数的求和函数 有时可能需要设计允许省略某些参数的函数。下面是一个例子,其中第二个参数设定了默认值: ```cpp #include <iostream> // 带有默认参数的求和函数 double sum(double a, double b = 0.0) { return a + b; } int main() { std::cout << "Sum with default parameter: " << sum(5.5) << std::endl; // 输出 5.5 std::cout << "Sum without default parameter: " << sum(5.5, 4.5) << std::endl; // 输出 10.0 return 0; } ``` 这里演示了一个具有默认参数的函数,当只提供单个参数时会自动采用设定好的默认值。 --- #### 方法四:多参数求和函数 对于多个参数的需求,可以结合变参模板或者初始化列表解决: ```cpp #include <iostream> #include <initializer_list> // 处理不定数量参数的求和函数 double sum(const std::initializer_list<double>& numbers) { double total = 0.0; for (auto number : numbers) { total += number; } return total; } int main() { std::cout << "Sum of multiple values: " << sum({1.0, 2.5, 3.3, 4.2}) << std::endl; // 输出 11.0 return 0; } ``` 这段程序使用了标准库中的 `std::initializer_list` 结构,从而让函数能够灵活应对一系列连续的实数相加需求。 --- ### 总结 以上分别介绍了四种常见的 C++ 求和函数设计方案,涵盖了从单一固定类型到复杂动态类型的范围。每种方案都有其适用场合,在实际开发过程中可根据具体业务逻辑选取合适的模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值