题目描述
创建一个包含 n 位正整数的一维数组,规定这样计算它的值:数组的第一位数乘 1,第二位数乘 2,第三位数乘 3,第四位乘 4,第五位乘 1,第六位乘2,第七位乘3,第八位乘4,以此类推,最后将相乘的结果加起来就是数组的值.
输入描述
包括两行,第一行输入一个正整数n,第二行包括n个整数,以空格间隔。
输出描述
包括一行,一个整数,表示数组的值
样例1
输入
10
1 2 3 4 5 6 7 8 9 10
输出
129
提示
对于100%的数据,其中 n<=100,1<=每个数字<=100。
#include
using namespace std;
int main() {
int n,b;
cin>>n;
int a[n];
for(int i=0;i>a[i];
}
for(int i=;i;i++)
{
}
return 0;
}
怎么写?
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int sum = 0;
for (int i = 0; i < n; i++) {
if ((i + 1) % 4 == 1) {
sum += arr[i];
} else if ((i + 1) % 4 == 2) {
sum += 2 * arr[i];
} else if ((i + 1) % 4 == 3) {
sum += 3 * arr[i];
} else if ((i + 1) % 4 == 0) {
sum += 4 * arr[i];
}
}
cout << sum << endl;
return 0;
}
该回答引用ChatGPT
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int a[n];
for(int i=0; i<n; i++) {
cin >> a[i];
}
int sum = 0;
for(int i=0; i<n; i++) {
if((i+1)%4 == 1 || (i+1)%4 == 2) {
sum += a[i] * (i%4 + 1);
} else {
sum += a[i];
}
}
cout << sum << endl;
return 0;
}
首先输入数组的长度n和n个整数,然后按照题目要求计算数组的值,即按照规律将每个元素与对应的系数相乘,然后加起来得到数组的值。规律是:数组的第一位数乘 1,第二位数乘 2,第三位数乘 3,第四位乘 4,第五位乘 1,第六位乘2,第七位乘3,第八位乘4,以此类推。
代码中使用了一个for循环,首先根据数组的长度创建一个数组a,然后读入n个整数存储到数组a中。然后在第二个for循环中,根据规律计算数组的值,根据元素在数组中的下标来确定对应的系数。最后输出数组的值。
例如,对于样例输入,数组的值为 1×1+2×2+3×3+4×4+5×1+6×2+7×3+8×4+9×1+10×2=129,所以输出129。
自己写的
#include <iostream>
using namespace std;
int main() {
int n,b;
cin>>n;
int a[n],sum=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n;i++)
{
sum+=(i%4+1)*a[i];
}
cout<<sum<<endl;
return 0;
}