[蓝桥杯-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;
}

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

相关推荐
xinghuitunan21 小时前
蓝桥杯顺子日期(填空题)
c语言·蓝桥杯
山里灵活的狗_2 天前
蓝桥杯练习笔记(二十-日期问题)
笔记·职场和发展·蓝桥杯
超栈2 天前
蓝桥杯-网络安全比赛题目-遗漏的压缩包
前端·网络·sql·安全·web安全·职场和发展·蓝桥杯
£suPerpanda2 天前
蓝桥杯第21场小白入门赛补题
数据结构·c++·算法·蓝桥杯
安祝老师2 天前
十四届蓝桥杯STEMA考试Python真题试卷第二套第二题
开发语言·python·算法·青少年编程·蓝桥杯
白榆maple2 天前
(蓝桥杯C/C++)——基础算法(上)
c语言·c++·算法·蓝桥杯
混迹网络的权某2 天前
蓝桥杯真题——三角回文数(C语言)
c语言·开发语言·算法·蓝桥杯·改行学it
混迹网络的权某3 天前
蓝桥杯真题——乐乐的序列和(C语言)
c语言·算法·蓝桥杯
aqua35357423583 天前
杨辉三角——c语言
java·c语言·数据结构·算法·蓝桥杯
Aurora_th3 天前
蓝桥杯 Python组-神奇闹钟(datetime库)
python·算法·职场和发展·蓝桥杯·datetime