小文同學(xué)剛剛接觸了信息學(xué)競(jìng)賽,有一天她遇到了這樣一個(gè)題:給定正整數(shù) a a a 和 b b b,求 a b a^b ab 的值是多少。
創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、坡頭網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為坡頭等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。a b a^b ab 即 b b b 個(gè) a a a 相乘的值,例如 2 3 2^3 23 即為 3 3 3 個(gè) 2 2 2 相乘,結(jié)果為 2 × 2 × 2 = 8 2 \times 2 \times 2 = 8 2×2×2=8。
“簡(jiǎn)單!”小文心想,同時(shí)很快就寫出了一份程序,可是測(cè)試時(shí)卻出現(xiàn)了錯(cuò)誤。
小文很快意識(shí)到,她的程序里的變量都是int
類型的。在大多數(shù)機(jī)器上,int
類型能表示的大數(shù)為
2
31
?
1
2^{31} - 1
231?1,因此只要計(jì)算結(jié)果超過這個(gè)數(shù),她的程序就會(huì)出現(xiàn)錯(cuò)誤。
由于小文剛剛學(xué)會(huì)編程,她擔(dān)心使用int
計(jì)算會(huì)出現(xiàn)問題。因此她希望你在
a
b
a^b
ab 的值超過
10
9
{10}^9
109 時(shí),輸出一個(gè)-1
進(jìn)行警示,否則就輸出正確的
a
b
a^b
ab 的值。
這道題其實(shí)是一道單純的模擬題,也可以用快速冪來解(不過我不會(huì))
我在考場(chǎng)上就是暴力循環(huán),如果循環(huán)到ans大于 10 9 {10}^9 109 ,就跳出,不然就循環(huán)b次,然后輸出(不會(huì)超時(shí))。
這道題還有個(gè)坑,如果a=1,b很大,就會(huì)超時(shí)(總所周知,1的幾次方都是1),所以還得特判一下。
下面就是代碼啦#includeusing namespace std;
long long n,m;
long long ans=1;
const int N=1e9;
int main(){//freopen("pow.in","r",stdin);
//freopen("pow.out","w",stdout);
cin>>n>>m;
if(n==1){//特判1
cout<<1;
return 0;
}
for(int i=1;i<=m;i++){ans*=n;
if(ans>N){//如果超出10^9,就輸出-1,然后退出
cout<<-1;
return 0;
}
}
cout<
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧