题目





思路
这题比较简单,一遍就满分过了,首先将c[i]也就是a[i]的前缀乘积算出来,然后注意提示内容,根据公式变化就可以得到b[i],这里值得一提的是,需要一个temp[i]来表示c[i-1]和b[i]的乘积,方便求b[i]的时候用。
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
int a[n],c[n+1],b[n],temp[n];
for(int i=1;i<=n;i++){
cin>>a[i];
c[0]=1;
c[i]=c[i-1]*a[i];
}
for(int i=1;i<=n;i++){
if(i==1){
b[i]=m%c[1];
temp[i]=b[1];
}
if(i!=1){
temp[i]=m%c[i];
b[i]=(temp[i]-temp[i-1])/c[i-1];
}
}
for(int i=1;i<=n;i++){
cout<<b[i]<<" ";
}
} 结果

该篇内容介绍了一个简单的编程问题的解决方案,涉及计算数组a[i]的前缀乘积c[i],并根据特定公式计算出数组b[i]。代码使用C++编写,通过维护temp数组来辅助计算,避免了重复计算,从而高效地得出结果。
&spm=1001.2101.3001.5002&articleId=129288454&d=1&t=3&u=a2f8a9fc2483445f95d3268d8086d569)
515

被折叠的 条评论
为什么被折叠?



