#2378. P2991 - 指数增长(add)
P2991 - 指数增长(add)
题目描述
在一个名为“算术王国”的奇幻世界里,小文是一位刚刚踏上学习之旅的年轻法师。在这个世界中,法师们通过施展强大的数学魔法来解决问题和克服挑战。小文最近学习了一种名为“指数增长”的魔法,它能够通过重复乘以一个基础数来快速增加数值。
一天,小文接到了一个任务:计算两个神秘数字a
和b
的魔法力量,即a^b
。这个任务对于小文来说是一个巨大的挑战,因为她需要确保计算的结果不会超出王国的魔法极限——一个巨大的数值10^9
。
小文首先尝试使用她的初级法杖来施展这个魔法,但很快她发现了一个严重的问题:她的法杖只能处理较小的数值,一旦结果超过2^31 - 1
,魔法就会失控,导致灾难性的后果。
小文意识到,她需要一种更高级的魔法工具来安全地进行这种强大的计算。她决定寻求王国中的智慧长者——一位经验丰富的数学大师的帮助。
数学大师告诉小文,她需要使用一种叫做“长整型法杖”的更强大的工具,这种法杖能够处理更大的数值。大师还教给了小文一个咒语,这个咒语能够在数值增长到危险边缘时及时停止,并发出警告。
小文按照大师的指导,开始施展新的咒语:
- 她首先准备好了“长整型法杖”,并将其初始化为1,代表魔法的起点。
- 然后,她开始循环施展“指数增长”魔法,每次循环都将基础数
a
乘以当前的魔法力量。 - 在每次循环中,小文都会检查当前的魔法力量是否接近王国的魔法极限。
- 如果魔法力量超过了极限,小文就会立即停止咒语,并用“-1”这个警示信号来提醒自己和其他法师,避免魔法失控。
通过这种方式,小文不仅成功地完成了任务,还学会了如何安全地处理大数值的魔法计算。她的法杖和咒语成为了王国中其他年轻法师学习的典范,小文也因此成为了一位受人尊敬的数学法师。
输入格式
输入共一行,两个正整数 a, b 。
输出格式
输出共一行,如果 ab 的值不超过 109 ,则输出 ab 的值,否则输出 ‐1 。
10 9
1000000000
【数据范围】
对于 10% 的数据,保证 b = 1。
对于 30% 的数据,保证 b ≤ 2。
对于 60% 的数据,保证 b ≤ 30,ab ≤ 。
对于 100% 的数据,保证 1 ≤ a, b ≤ 。