L1-085 试试手气
作者:
lvjj
,
2024-03-21 19:48:36
,
所有人可见
,
阅读 9
#include <bits/stdc++.h>
using namespace std;
int a[10][10]={};//开一个二维数组,i表示第几个骰子
int n;//你要输入的骰子的数量
int m;//你要摇的次数
int j;//表示某个骰子在第某次摇所产生的点数
int main(){
for(int i = 1;i<=6;i++){
cin>>n;//初始化每个骰子的点数
a[i][n]++;//然后标记在数组中
}
cin>>m;
for(int k=1;k<=m;k++){//比如m=3表示要摇三次
for(int i=1;i<=6;i++){//每摇一次会产生六个新点数
j=6;//对每行元素从右往左遍历来找最大值,因为要序列是从左到右递增的。
while(a[i][j]!=0){//如果先前的点数出现了就不能访问了
j--;//所以从右往左找到第一个没被访问的下标
}
a[i][j]++;//被访问了记得++
if(k==m&&i!=6)cout<<j<<' ';//满足你摇的第m次,就输出那个时候的j
else if(k==m&&i==6)cout<<j;//最后一次输出不加空格
}
}
return 0;
}