输入两个数 和 求 (特判:若 求 大于 则输出 )
先把 设为1( 永远等于 )
再使用 for
循环 遍 ans=ans*a
和特判
#include <iostream>
#include <cstring>
#define MAX 1000000000
using namespace std;
long long a,b,ans=1;
int main()
{
scanf("%lld%lld",&a,&b);//输入
for(long long i=1;i<=b;i++)ans=ans*a;//计算
if(ans>MAX) printf("-1");//特判
else printf("%lld",ans);//输出
return 0;
}
由于在输出时再特判,可能会超时或答案溢出。所以只能得50分。
#include <iostream>
#include <cstring>
#define MAX 1000000000
using namespace std;
long long a,b,ans=1;
int main()
{
scanf("%lld%lld",&a,&b);
for(long long i=1;i<=b;i++)
{
ans=ans*a;
if(ans>MAX)
{
printf("-1");
return 0;
}
}
printf("%lld",ans);
return 0;
}
由于100分代码边循环便特判,所以不会会超时或答案溢出。所以得100分。