2018蓝桥杯C++A组——分数

问题描述

1/1 + 1/2 + 1/4 + 1/8 + 1/16 + … 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来。
类似:3/2
当然,这只是加了前2项而已。分子分母要求互质。

题目解析

这是一道填空题,因此代码起到辅助计算功能,可以先用等比数列求和公式算出结果,最后约分即可得到正确答案。

C++代码

#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 main()
{
    cout<<gcd(pow_2(20)-1,pow_2(19))<<endl; //最大公约数
    cout<<pow_2(20)-1<<"/"<<pow_2(19)<<endl; //输出分子分母
}

正确答案

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芷汀若静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值