题目1
标题:分数
1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ....
每项是前一项的一半,如果一共有20项,
求这个和是多少,结果用分数表示出来。
类似:
3/2
当然,这只是加了前2项而已。分子分母要求互质。
注意:
需要提交的是已经约分过的分数,中间任何位置不能含有空格。
请不要填写任何多余的文字或符号。
//第一题:就是求一个,首项为1,等比为1/2的等比数列的前二十项之和
#include<bits/stdc++.h>
using namespace std;
//快速幂运算a^b
long power(int a,int b){
long x=a;
long res=1;
while(b>0){
if(b&1){
res*=x;
}
b>>=1;
x=x*x;
}
return res;
}
//最大公约数 a/b
int gcd(long a,long b){
return b==0?a:gcd(b,a%b);
}
int main(){
cout<<gcd(power(2,20)-1,power(2,19))<<endl;
cout<<power(2,20)-1<<"/"<<power(2,19)<<endl;
return 0;
}
答案:1048575/524288