1. 问题描述:
标题:分数
1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ....
每项是前一项的一半,如果一共有20项,
求这个和是多少,结果用分数表示出来。
类似:
3/2
当然,这只是加了前2项而已。分子分母要求互质。
注意:
需要提交的是已经约分过的分数,中间任何位置不能含有空格。
请不要填写任何多余的文字或符号
2. 思路分析
其实就是等比数列求和那么我们可以使用手算出分子与分母各自使用幂函数的表示形式,使用程序来计算出相应的分子与分母,并且计算出两者的最大公约数,代码如下:
public class Main {
public static void main(String[] args) {
int n = 1;
for(int i = 0; i < 20; i++){
n *= 2;
}
//分子为A,分母为B
int A = n - 1;
int B = n / 2;
int gcd = gcd(A, B);
System.out.println((A / gcd) + "/" + (B / gcd));
}
//求解最大公约数
public static int gcd(int m, int n){
//当n为0的时候那么此时返回m即可
if(n == 0) return m;
return gcd(n, m % n);
}
}
计算出的最大公约数刚好是1,那么分子与分母最后的表示形式为: