没有合适的资源?快使用搜索试试~ 我知道了~
2的2023次方除1000的余数
需积分: 1 0 下载量 154 浏览量
2023-12-03
21:17:41
上传
评论
收藏 12KB DOCX 举报
温馨提示
试读
2页
快速幂算法-实现2的2023计算 文章说明: 1、通过一个简单例子快速了解幂等计算算法 2、给出例题代码,并分析。例题即为:求 2**2023%1000,即 2的2023次方除以1000的余数。
资源推荐
资源详情
资源评论
快速幂算法 C++
一个简单例子快速了解
计算 2 的 13 次方,首先,我们将指数 13 转换为二进制形式,得到 1101。
然后,我们从右到左遍历每一位:
第一位是 1,所以我们将结果乘以 2 的 20 次方=2 的 1 次方=2;
第二位是 0,所以我们不需要乘以任何东西;
第三位是 1,所以我们将结果乘以 2 的 22 次方=2 的 4 次方=16;
第四位是 1,所以我们将结果乘以 2 的 23 次方=2 的 8 次方=256。
所以,213=2×16×256=8192。
例题代码
求 2**2023%1000,即 2 的 2023 次方除以 1000 的余数。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提
交答案时只填写这个整数,填写多余的内容将无法得分。
#include<iostream>
using namespace std;
int fastPower(int base, int power, int mod) {
int result = 1;
while (power > 0) {
if (power & 1) {
result = (result * base) % mod;
}
base = (base * base) % mod;
power >>= 1;
}
return result;
}
int main() {
cout << fastPower(2, 2023, 1000);
return 0;
}
在上面的 C++代码中,fastPower 函数就是实现了这个算法。
它接受三个参数:基数 base、指数 power 和模数 mod。
在函数体中,它首先初始化结果 result 为 1,然后进入一个循环,循环条件是 power >
0。在每一轮循环中,它首先检查 power 的最低位是否为 1,如果是,就将 result 乘以 base
并取模 mod;然后,无论 power 的最低位是否为 1,都将 base 自身平方并取模 mod,并将 power
资源评论
yellow1019
- 粉丝: 41
- 资源: 100
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功