题目
思路
这题比较简单,一遍就满分过了,首先将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]<<" ";
}
}