题目描述
幂运算是常见的数学运算之一,其原理是用同一个数相乘多次,但是有的时候当幂指数特别大的时候,这样的运算就太浪费时间。请大家学会在幂中加特技,让幂运算的效率提高到可以接受的程度。
输入:
第一个行一个整数T,表示有T组数据
每组数据,输入x,y 求x的y次幂 (2≤ x ,y≤10^9)
输出:
每组数据输出一个整数,表示幂运算对1000000007取模后的结果
样例输入:
2
2 4
2 100000000
样例输出:
16
494499948
我的代码总是超时,求好方法!!谢谢!!
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

首页/
已采纳
一道关于大数幂运算的题目,c语言实现
收起
- 写回答
- 好问题 1 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
9条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
threenewbee 2015-03-29 03:17关注不知道你怎么算的
我们知道
a^m可以视作a^p*a^q(p+q=m)
而如果p=m,显然,我们只要算了a^p,就可以再平方下就是最后的结果了。
因此最简单的做法就是,将指数转化成2的幂相加的结果,这相当于二进制计算,比如100000000
就是101111101011110000100000000(2)
那么就是256+8192+16384+32768+65536+262144+1048576+...
然后我们分别计算N的这些次方的幂,别忘了,我们可以通过平方翻倍很快算出来。
最后再把结果相乘。本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决评论 打赏无用 1举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2019-11-17 12:07回答 2 已采纳 是不是输出格式不对,Case首字母大写?
- 2022-02-07 04:16回答 2 已采纳 这一步为了消除大数前面无用的0
- 2021-11-12 09:21回答 3 已采纳 高精度加法吗…… #include <bits/stdc++.h> using namespace std; int numa[260], numb[260], ans[260], l1,
- 2022-07-05 03:09菜篮里的菜的博客 若你的编译器运行失败可能是不支持函数没有声明的情况,可以自己加一段声明想看解析可以去我另篇,这里可以直接复制运行(注意我的输入输出格式是否跟你的题目一样) 大整数加法 大整数减法 大整数除法 大整数...
- 2023-04-17 12:31回答 4 已采纳 #include <stdio.h> int main() { int array[9][9]; printf(" 九九乘法表\n"); // 计算乘
- 2023-04-17 01:30回答 2 已采纳 参考下 #include <stdio.h> #define ROWS 9 #define COLS 9 int main() { int array[ROWS][COLS];
- 2022-12-15 12:04回答 2 已采纳 long long powerofn(long long x, long long y) { long long result = 1; while (y > 0) {
- 2021-05-19 10:04weixin_39560657的博客 这时,我们可以用数组来模拟大数的各种运算。该模拟方法即为高精度算法。快速幂即为求解形如an的快速算法。1.知识点梳理:Ø高精度的存储高精度存储采用数组存储每一位的值,并记录数组的长度和正负性。一般来讲,...
- 2021-10-08 08:06回答 2 已采纳 x =int(input('请输入一个整数')) y =int(input('请输入一个整数')) print(x*y) 有帮助请采纳,有问题继续交流,你的采纳是对我回答的最大的肯定和动力
- 2018-11-21 05:42回答 2 已采纳 ``` #include "stdio.h" int mod(int n) { int n1 = n; int base = 1; int sum = 0; whil
- 2022-07-07 15:05回答 2 已采纳 输入数据后,把数字和运算符解析出来分别放在vector中,然后逐2个取数,逐1个取运算符计算,然后把计算结果插入到数字vector中,重复上述操作,直到符号vector为空。运行结果如下: 代码:
- 2021-05-17 08:12周愫理(西山飞鱼)的博客 Github最终优化代码:https://github.com/laiy/Datastructure-Algorithm/blob/master/sicily/1020.c 题目如下: 1020. Big Integer Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Long long ago, ...
- 2021-05-19 05:15weixin_39539764的博客 前言看到这里的小盆友们千万不要以为这个东西很难,其实...(呵呵呵)逆元素:指一个能够取消另外一给定元素运算的元素,在数学里,逆元素广义化了加法中的加法逆元和乘法中的倒数。(???)乘法逆元:群G中任意一个元素a,...
- 2020-12-17 09:08Mr.VK的博客 快速幂算法一般用于指数比较大的幂运算,例如3的100次方,2的50次方等等,相比于使用pow(a,b)函数来说,快速幂运行所需时间更小,在一些有时间限制的题目上有着非常大的优势 算法原理: 例如我要算3的100次方,我们...
- 2020-03-29 06:51久忆凉的博客 1. 大数阶乘: import java.util.*; public class Main { public static void main(String [] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int maxx=4000; int []...
- 2021-03-07 10:23听风无涯JixT的博客 先来看一道题目:题目链接 本题代码在最后哦~ 快速幂运算的优势: 1.可用来算大数的幂的一种算法。 2.其时间复杂度为 O(log₂N), 如果我们使用循环来计算的话,那么时间复杂度就是 O(n) ,与朴素的O(N)相比效率有了...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司