[蓝桥杯-610]分数

题面

解答

这一题如果不知道数论结论的话,做这个题会有两种天壤之别的体验

此题包含以下两个数论知识

1. 2^0+2^1+2^2+...+2^(n-1)=2^n-1

2. 较大的数如果比较小的数的两倍大1或者小1,则两者互质

所以答案就是2^n-1/2^(n-1)

标程1

我的初次解答

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;

typedef long long int ll;
#define endl "\n"
#define maxLine 110
#define long long int ll;

ll num=20;

int main() {
    cout<<(ll)pow(2,20)-1<<"/"<<(ll)pow(2,19);
    return 0;
}

但是感觉好像有点慢

下午我么们来用快速幂优化一下

标程2

使用快速幂优化

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;

typedef long long int ll;
#define endl "\n"
#define maxLine 110
#define long long int ll;


// ll mul(ll a,ll b,ll mod)
// {
//     a %= mod;
//     b %= mod;
//     return (a*b-((ll)((long double)a/mod*b))*mod+mod)%mod;
// }
inline ll ksm(ll a,ll b ){
    ll res=1;
    while(b){
        if (b&1) res*=a;
        b>>=1;
        a*=a;
    }
    return res;
}
int main() {
    cout<<(ll)ksm(2,20)-1<<"/"<<(ll)ksm(2,19);
    return 0;
}

奇怪,优化后的代码空间和时间居然没有任何提升。。。

相关推荐
柒月的猫2 小时前
求和(2022蓝桥杯A组试题C)
c语言·算法·蓝桥杯
<但凡.7 小时前
题海拾贝:蓝桥杯 2020 省AB 乘法表
c++·算法·蓝桥杯
柒月的猫1 天前
方格分割(蓝桥杯2017年试题D)
职场和发展·蓝桥杯
柒月的猫1 天前
翻转(蓝桥杯2023大学C组试题E)
职场和发展·蓝桥杯
Solitudefire1 天前
蓝桥杯刷题——day9
算法·蓝桥杯
@小码农2 天前
202411 第十六届蓝桥杯青少组 STEMA 考试真题 汇总
职场和发展·蓝桥杯
不想当程序猿_3 天前
【蓝桥杯每日一题】分糖果——DFS
c++·算法·蓝桥杯·深度优先
逝灮3 天前
【蓝桥杯——物联网设计与开发】基础模块8 - RTC
stm32·单片机·嵌入式硬件·mcu·物联网·蓝桥杯·rtc
不过四级不改名6773 天前
蓝桥杯嵌入式备赛教程(1、led,2、lcd,3、key)
stm32·嵌入式硬件·蓝桥杯
TT哇3 天前
*【每日一题 提高题】[蓝桥杯 2022 国 A] 选素数
java·算法·蓝桥杯