1. 程式人生 > >藍橋杯-第七屆省賽javaC組- 骰子游戲

藍橋杯-第七屆省賽javaC組- 骰子游戲

骰子游戲

我們來玩一個遊戲。
同時擲出3個普通骰子(6個面上的數字分別是1~6)。
如果其中一個骰子上的數字等於另外兩個的和,你就贏了。

下面的程式計算出你能獲勝的精確概率(以既約分數表示)


public class Main
{
public static int gcd(int a, int b)
{
if(b==0) return a;
return gcd(b,a%b);
}

public static void main(String[] args)
{
int n = 0;
for(int i=0; i<6; i++)
for(int j=0; j<6; j++)
for(int k=0; k<6; k++){
if(________________________________) n++; //填空位置
}

int m = gcd(n,6*6*6);
System.out.println(n/m + "/" + 6*6*6/m);
}
}


仔細閱讀程式碼,填寫劃線部分缺少的內容。

注意:不要填寫任何已有內容或說明性文字。

題目上算a,b最大公約數的演算法 還是可以學習的

package 藍橋杯第七屆省賽javaC組;

public class 骰子游戲
{
	public static int gcd(int a, int b)
	{
		if(b==0) return a;
		return gcd(b,a%b);
	}
	
	public static void main(String[] args)
	{	
		int n = 0;
		for(int i=0; i<6; i++)
		for(int j=0; j<6; j++)
		for(int k=0; k<6; k++){
			if((i+1)==(j+1)+(k+1)||
					(j+1)==(i+1)+(k+1)||
					(k+1)==(j+1)+(i+1)) n++;   //填空位置
		}
		
		int m = gcd(n,6*6*6);
		System.out.println(n/m + "/" + 6*6*6/m);
	}
}