题目名称 934. [暑假培训2012] 残酷的数学老师
输入输出 cruel1.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 14
题目来源 Gravatarmouse 于2012-07-17加入
开放分组 全部用户
提交状态
分类标签
高精度 快速幂
分享题解
通过:95, 提交:345, 通过率:27.54%
Gravatar1020 100 0.026 s 0.96 MiB C++
GravatarHouJikan 100 0.054 s 0.42 MiB C++
GravatarFoolMike 100 0.063 s 3.34 MiB C++
Gravatardevil 100 0.067 s 0.31 MiB C++
Gravatardevil 100 0.067 s 0.31 MiB C++
Gravatar绕着指尖 100 0.088 s 0.31 MiB C++
Gravatarztx 100 0.091 s 0.36 MiB C++
GravatarHoumra 100 0.094 s 0.31 MiB C++
GravatarMakazeu 100 0.103 s 1.43 MiB C++
GravatarDijkstra 100 0.115 s 0.54 MiB C++
本题关联比赛
20130725暑期B班1测
20130725暑期B班1测
20140711B班小测
暑假综合模拟2
关于 残酷的数学老师 的近10条评论(全部评论)
压七位可以过,就是这个输出格式略恶心。。我是把压七位的数又展开了,调这个转换的过程WA3次
Gravatarliu_runda
2016-02-28 12:26 10楼
200题纪念
Gravatarwoca
2015-10-16 16:15 9楼
奇怪,为什么我用了二分快速幂反而比我没用的时候慢上不少呢?而且第十三个数据一直超时,还不如我原来的好。
GravatarGaoErFu
2015-08-21 11:16 8楼
为什么我既没有用什么快速幂,也没有用压位和大进制依然过了?貌似我用的是分而治之,N比较小时我就用int型数组算和储存,N比较大时我就用long long型数组,而且貌似用int型数组比用long long数组快一点。现在学了快速幂,有时间把程序改一下好了。
GravatarGaoErFu
2015-08-19 17:29 7楼
高精度加快速幂,之前各种写错写的我想吐了,总算写对了
Gravatardevil
2014-10-08 23:04 6楼
回复 @乾坤兑 :
压位好写还是快速幂好写???
GravatarOI永别
2014-05-09 19:34 5楼
int main(){
freopen("cruel1.in","r",stdin);
freopen("cruel1.out","w",stdout);
getnum(a);
scanf("%d",&b);
BIGNUM c; c.clean();
c.x[1] = c.x[0] = 1;
while (b){
if (b & 1) c = a * c;
a = a * a;
b >>= 1;
}
print(c);
return 0;
}

简短的主程序
GravatarOI永别
2014-05-09 19:30 4楼
输入输出最后一个字符是数字1,不是字母l
GravatarMID_VAMPIRE
2014-05-09 17:19 3楼
这题没必要快速幂,压七位高精度可以不超时
Gravatar赵寒烨
2013-08-29 23:58 2楼
又是一道高精乘练手……
Gravatarcstdio
2013-07-10 16:26 1楼

934. [暑假培训2012] 残酷的数学老师

★   输入文件:cruel1.in   输出文件:cruel1.out   简单对比
时间限制:1 s   内存限制:128 MiB

为了拿到毕业文凭,贝茜又回到了8年级。

她那狠心的数学老师希望学生们来计算"整数的幂"。一个整数的幂结果仍旧是整数,是由一个数N(1 < = N < = 2,000,000,000)自身相乘P次(1 < = P < = 100,000)。

举例说明:2的3次幂 = 2 * 2 * 2 (3次)= 8。

同样,123456的88次幂 =123456*123456*…*123456(88次)=

1129987770413559019467963153621658978635389622595924947762339599136126

3387265547320084192414348663697499847610072677686227073640285420809119

1376617325522768826696494392126983220396307144829544079751988205731569

1498433718478969549886325738202371569900214092289842856905719188890170

0772424218248094640290736200969188059104939824466416330655204270246371

3699112106518584413775333247720509274637795508338904731884172716714194

40898407102819460020873199616

在输出时,每行70输出位数字。

编写一个程序,计算一个整数n的p次幂,答案保证不超过15,000位数。答案要求每行输出70位数字(除了最后一行可能较短),前边的零不要输出。

输入格式:

第1行:两个用空格隔开的整数:N和P

输出格式:

*第1..?行:一个的整数,即计算结果。

每行输出70位数字,除了最后一行可能会短。

cruel1.in

2 15

输入说明: 计算2的15次幂。

cruel1.out

32768