2018年蓝桥杯A组填空题6.分数 知识点:数学推导 分数相加 gcd , 快速幂

37 阅读1分钟

6.分数 - 蓝桥云课 (lanqiao.cn)

解析

我们把题目给的数列拿出来找规律:

image.png

我们发现分母有规律可寻,因此我们可以推测出第20项是1219 \frac{1}{2^{19}}

题目说了要求我们求出前20项的和,用最简分数形式表示出来。

因此我们需要对整个分数数列进行通分,最后再约分

image.png

我们对分子分母分别进行处理,分子我们发现是一个等比数列,我们可以用等比数列求和公式求出:

image.png

结论: image.png

因此现在我们的答案就是:

image.png

我们只需要对2201219\frac{2^{20-1}}{2^{19}}进行一个确切的计算,然后再对其进行约分即可。我们可以一个一个去乘,但是效率太低了,所以在这里用快速幂:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;


//求2的n次幂 
LL pow_2(int b)
{
  	LL x=2;  //底数为2 
  	LL res=1;
  	while(b>0)
  	{
  		if(b&1)  //如果进制位上是1 
  			res*=x;  
  		b>>=1;  //右移 ,找下一位是否是1 、
		x=x*x; //2的n次方 
	}
return res;
}

//最大公约数 
int gcd(LL a,LL b)
{
  return b==0?a:gcd(b,a%b); 
}
int main()
{
	cout<<gcd(pow_2(20)-1,pow_2(19))<<endl;
	cout<< pow_2(20)-1<<"/"<<pow_2(19)<<endl;
	return 0;
}

image.png

image.png