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