一、题目
二、解题思路
- 由题可知,每个骰子摇出的点数都跟它之前任何一次出现的点数不同,在满足第一个条件的前提下,每次都能让每个骰子得到可能得到的最大点数。
- 例如,当初始点数为 3 ,前三次摇出的结果分别为 6,5,4 ;当初始点数为 5 ,前三次摇出的结果分别为 6,4,3 。
- 可知当初始点数为 x 时,摇 n 次后,如果 x<6-n+1 ,则结果为 6-n+1 ,否则为 6-n 。
三、代码
#include<iostream>
using namespace std;
int main()
{
int a[10],n;
for(int i=0;i<6;i++)
{
cin>>a[i];
}
cin>>n;
for(int i=0;i<6;i++)
{
if(i>0)
{
cout<<" ";
}
if(a[i]<6-n+1)
{
cout<<6-n+1;
}
else
{
cout<<6-n;
}
}
return 0;
}
四、总结
找到判断的条件 x<6-n+1 即可。