1. 程式人生 > 其它 >java實戰12:分數

java實戰12:分數

技術標籤:java資料結構演算法eclipse

java實戰12:分數

藍橋杯第九屆java省賽A組1.

原題:
標題:分數

1/1 + 1/2 + 1/4 + 1/8 + 1/16 + …
每項是前一項的一半,如果一共有20項,
求這個和是多少,結果用分數表示出來。
類似:
3/2
當然,這只是加了前2項而已。分子分母要求互質。

注意:
需要提交的是已經約分過的分數,中間任何位置不能含有空格。
請不要填寫任何多餘的文字或符號。

思路:肯定不能用那種double sum;然後挨個加進去了,因為這樣的話得到的就是一個有很多位的小數,要求的結果是約分過的分數,所以考慮分子分母分開算,再一比。

程式碼如下:

public class province_1 {
	public static void main(String[] args) {
		int zi=1;int mu=1;
		for(float i=1;i<=19;i++) {
			zi+=(mu*2);
			mu*=2;
		}
		System.out.printf("%d ",zi);
		System.out.printf("\n");
		System.out.printf("%d ",mu);
	}
}

執行結果:
在這裡插入圖片描述
所以結果就是1048575/524288