思路:
根据题目所示逻辑,先确立c数组的各个值,再根据求余操作求b,在这道题为了节省时间,减少数组的使用,所以使用了结构体。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,m;
typedef struct Node{
int c;//表示a的前缀编码
int a;//每道题的选项数目
int b;//表示每道题的正确选项
}node;
int main(){
cin>>n>>m;
node no[21];
for(int i=1;i<=n;i++){
no[0].c=1;
cin>>no[i].a;
no[i].c=no[i].a*no[i-1].c;
}
for(int i=1;i<=n;i++){
no[i].b=(m%no[i].c-m%no[i-1].c)/no[i-1].c;
cout<<no[i].b<<" ";
}
}