厦门市房地产建设局网站,html5 视频网站 模板,农村电商平台怎么加入,做网站有没有免费空间L1-085 试试手气 我们知道一个骰子有 6 个面#xff0c;分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态#xff0c;即它们朝上一面的点数#xff0c;让你一把抓起摇出另一套结果。假设你摇骰子的手段特别精妙#xff0c;每次摇出的结果都满足以下两个条件#xff1a;…L1-085 试试手气 我们知道一个骰子有 6 个面分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态即它们朝上一面的点数让你一把抓起摇出另一套结果。假设你摇骰子的手段特别精妙每次摇出的结果都满足以下两个条件
每个骰子摇出的点数都跟它之前任何一次出现的点数不同在满足条件 1 的前提下每次都能让每个骰子得到可能得到的最大点数。 那么你应该可以预知自己第 n 次1≤n≤5摇出的结果。
输入格式
输入第一行给出 6 个骰子的初始点数即 [1,6] 之间的整数数字间以空格分隔第二行给出摇的次数 n1≤n≤5。
输出格式
在一行中顺序列出第 n 次摇出的每个骰子的点数。数字间必须以 1 个空格分隔行首位不得有多余空格。
输入样例
3 6 5 4 1 4
3输出样例
4 3 3 3 4 3样例解释
这 3 次摇出的结果依次为
6 5 6 6 6 6
5 4 4 5 5 5
4 3 3 3 4 3分析
其实这道题除了一步步算之外还可以运用数学方法来寻找规律。根据题目条件我们知道它其实每个骰子每次的点数都是可以取的最大值其实n次后的值就是[6,5,4,3,2,1]中去除本身后的第n个数。而这可以转化为7-n但是需要注意当dice[i]n6时最终的点数比本身小所以需要跳过自身的数也就是6-n的表达式其实完整表达式写出来就是dice[i]-(n-(6-dice[i]))减去还要往下数多少个数。 P.S.注意输出不能有多余空格
代码
#includebits/stdc.h
using namespace std;
int main(){int dice[6];int i,n;for(i0;i6;i){cindice[i];}cinn;for(i0;i6;i){if(i)cout ;if(dice[i]n6){//coutdice[i]-(n-(6-dice[i]));cout6-n;}else{cout7-n;}}return 0;
}