1/1 + 1/2 + 1/4 + 1/8 + 1/16 + … 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用互质分数表示出来。
类似:3/2
#include<bits/stdc++.h>
using namespace std;
long pow_2(int b)
{
long x = 2;
long res = 1;
while (b > 0)
{
if (b & 1)
res *= x;
b >>= 1;
x = x * x;
}
return res;
}
int gcd(long a, long b)
{
if (b == 0)
return a;
return gcd(b, a % b);
}
/*
int gcd(int a, int b)
{
while (b > 0)
{
int c;
c = a % b;
a = b;
b = c;
}
return a;
}
*/
/*
int gcd(int a, int b)
{
return a % b ? gcd(b, a % b) : b;
}
*/
int main()
{
long m=pow_2(20)-1;
long n=pow_2(19);
int c=gcd(m,n);
cout<< c<<endl;
cout << pow_2(20) - 1 << "/" << pow_2(19) << endl;
}