竞赛
考级
#include<bits/stdc++.h> using namespace std; int main() { int a,b; cin >> a; cin >> b; long long mul=1; for (int i=1;i<=b;i++) { mul=mul*a; if (mul>1000000000) { cout << "-1" << endl; return 0; } } cout << mul << endl; return 0; }
189****8874
法兰西玫瑰
简单易懂的代码来了!!! 点个关注!!!
CPZT(C++)ALLEN
AC
荷取青
解题时间到!!!
MrSongJiaHeng
#include<bits/stdc++.h> using namespace std; int main() { int a ,b; cin >> a >>b; long long t = pow(a,b); if(t>1000000000 or t<0) cout << -1; else cout << t; return 0; }
158****8066
这道题非常简单。 主体思路就是先输入两个变量a和b,然后算a的b次幂,看有没有超过1e9,超过输出-1,否则输出a的b次幂。 先输入a和b。 然后定义一个变量cnt,for循环b次,每一次*=a,后面再加一个判断,有没有超过1e9。我们之所以要在循环内进行判断,是因为a的b次幂可能超过2的63次幂-1,也就是超过了long long的上线。 你们最喜欢的AC代码: 点个赞吧!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
奥特曼
逍遥骇好=&
题目分析: 初读题目发现是个数学问题,适用于初一以上同学食用!因为是int输入所以不能超过1e9,所以问题变得非常简单 具体代码与解析如下,感谢您的耐心观看: 此代码可用于初学者学习,欢迎交流借鉴!
鍾離しょうり
ドラゴンコア(AC比本狗还狗)
#include<iostream> using namespace std; int main(){ long long a,b,c=1; cin >> a >> b; for(int i=0;i<b;i++){ c*=a; if(c>1000000000){ cout << "-1"; return 0; } } cout << c; return 0; }
199****6199
晶核
王者~李白
这题很简单,就不做讲解了 代码:
Andy
include<bits/stdc++.h> using namespace std; int main(){ unsigned long long d=1000000000; int a,b; cin>>a>>b; unsigned long long sum=1; for(int i=1;i<=b;i++){ sum*=a; if(sum>d){ cout<<-1; return 0; } } cout<<sum; return 0; }
嫌疑を避ける ~~
#include<bits/stdc++.h> using namespace std; int main() {int a,b;cin >> a >> b;long long mul=1;for (int i=1;i<=b;i++){mul=mul*a;if (mul>1000000000){cout << "-1" << endl;return 0;}}cout << mul << endl;return 0;} 加油,奥力给!
Zhang Yixuan
主体思路:在计算ab时同时判断当前所得数是否超过109,超过后输出-1并返回,若程序成功退出循环,则说明所得答案没有越界,输出所得数即可。 AC代码: 在实际实现时,会出现一种错误代码如下: 此时程序会WA3个点,因为ab可能大于263-1,也就是超过long long类型上限 将c改为unsigned long long可解决1个点 更优方式为将判断改至循环中,每乘一次a判断一次,可以通过本题全部检测点
Hongxy_0825
#include<bits/stdc++.h> #include<math.h> using namespace std; int main(){ int a,b; cin>>a>>b; long long po=pow(a,b); if(po<1||po>1000000000)cout<<-1; else cout<<po; }
淹在c++海洋里的姜禹卓
来自互联网的疯子
尘埃
共40条