帮我写个C++代码:小 G 是一个普及组选手,今天他刚刚学习了前缀和。 对于一个数列 a 而言,其前缀和也是一个数列 S,满足 Si 恰好是a 的前 i 项之和。 举个例子,如果数列 a 有 3 项,分别为 1,2,4,那么对应 a 的前缀和就是 1,1+2,1+2+4,也就是 1,3,7。 教练为了让他熟悉前缀和的计算,给出了一个正整数数列 a,让他求了这个数列的前缀和,并以此为基础再求新数列的前缀和,反复了好多次。 现在小 G 面对乱糟糟的草稿纸,忘记了这是自己求的第几次前缀和。你能帮帮他吗? 输入格式 输入共有三行,第一行有且仅有一个正整数 n,表示数列的长度。 第二行有 n 个正整数 a1,a2,...,an,表示原来的数列。 第三行有 n 个正整数s1,s2,...,sn,表示小 G 目前求得的好多次前缀和。 输出格式 输出一行一个正整数 k,表示这是他第k 次求前缀和。 题目保证小 G 一定算对了,也就是有且仅有一个正整数 k 符合题意。 样例 #1 样例输入 #1 4 1 1 2 6 样例输出 #1 2
时间: 2024-04-21 08:22:33 浏览: 93
输入一个正整数,判断是不是素数(C++)
当然可以!以下是相应的 C++ 代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
vector<int> s(n);
for (int i = 0; i < n; i++) {
cin >> s[i];
}
vector<int> prefix_sum_a(n);
prefix_sum_a[0] = a[0];
for (int i = 1; i < n; i++) {
prefix_sum_a[i] = prefix_sum_a[i-1] + a[i];
}
for (int i = 0; i < n; i++) {
if (prefix_sum_a[i] == s[i]) {
cout << i+1 << endl;
break;
}
}
return 0;
}
```
希望对你有帮助!如果还有其他问题,请随时提问。
阅读全文