L1-085 试试手气 - java

题目解析

给定6个骰子的初始状态 求出满足条件的n个回合后 骰子的点数

解题思路

给定的条件简化为就是: 骰子没出现过的点数的最大值

骰子的最大点数为6, 那么n个回合后最大点数就是 6n+16 - n + 1

  • 但是还有初始状态所以看n个回合后的最大点数是否小于初始点数
    • 小于 就将点数再次-1
    • 否则不减

代码

import java.io.*;
import java.math.*;
import java.util.*;

public class Main
{

	public static void main(String[] args)
	{
		int m = 6;
		int shu[] = new int[m + 10];
		for (int i = 1; i <= m; i++)
			shu[i] = sc.nextInt();

		int n = sc.nextInt();
		for (int i = 1; i <= m; i++)
		{
			int x = 6 - n + 1;
			if (x <= shu[i])
				x--;

			if (i != 1)
				out.print(" ");
			out.print(x);
		}

		out.flush();
		out.close();
	}

	static Scanner sc = new Scanner(System.in);
	static PrintWriter out = new PrintWriter(System.out);
}


团体程序设计天梯赛-练习集-java

赞赏