C.通过余数组装
每次测试时限:2 秒
每次测试的内存限制:256 兆字节
输入:标准输入
输出:标准输出
思路分析
我们用arr数组存放输入的数据,用brr代表代表答案数组,我们可以看到答案的第一位是都是arr的首位+1,然后我们观察可得,答案等于答案数组的前一位加是对于的输入数据即:brr[i + 1] = brr[i]+ arr[i];
如果这样做的话,第五组数据会得到2 3 8,这样第二号余数是2,就不符合题目给的5的条件了因此我们需要这样写,因为这个数太小了不行,所以要让他大一点
cpp
while(brr[i + 1] <= arr[i + 1])
{
brr[i + 1] += brr[i];
}
cpp
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int t,n,k;
int arr[550];
int brr[550];
int main()
{
cin >> t;
while (t--)
{
cin >> n;
for (int i = 0; i < n - 1; i++) cin >> arr[i];
brr[0] = arr[0]+ 1;
for (int i = 0; i < n - 1; i++)
{
// k = 2;
brr[i + 1] = brr[i]+ arr[i];
while(brr[i + 1] <= arr[i + 1])
{
brr[i + 1] += brr[i];
}
}
for (int i = 0; i < n; i++)
cout << brr[i] << " ";
cout << endl;
}
return 0;
}