日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

信息学奥赛一本通 1069:乘方计算 | OpenJudge NOI 1.5 13

發(fā)布時(shí)間:2025/3/17 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 信息学奥赛一本通 1069:乘方计算 | OpenJudge NOI 1.5 13 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【題目鏈接】

ybt 1069:乘方計(jì)算
OpenJudge NOI 1.5 13:乘方計(jì)算

【題目考點(diǎn)】

1. 循環(huán)求冪

  • 設(shè)變量r初始值為1:int r = 1;
  • 循環(huán)n次每次循環(huán)中輸入變量a,將r的值設(shè)為r*a:r *= a;
  • 循環(huán)結(jié)束后,r即為ana^nan

2. 調(diào)用乘方函數(shù)pow()(存在于<cmath>中)

double pow(double a, double b); 求aba^bab

3. (擴(kuò)展)快速冪

一般循環(huán)求ana^nan時(shí)間復(fù)雜度為O(n),快速冪求ana^nan時(shí)間復(fù)雜度為O(logn)

  • 設(shè)結(jié)果變量r初始值為1:int r = 1;,
  • 此時(shí)r需要乘以ana^nan才能得到最終結(jié)果
    • 如果此時(shí)n為奇數(shù),那么r *= a;,此時(shí)r還需要乘以n-1個(gè)a,使n = n - 1。如果n是偶數(shù),則跳過這一步。(由于n是奇數(shù),整除運(yùn)算 n/2 的值與 (n-1)/2的值是相等的,所以這一步中n = n - 1可以省略)
    • 此時(shí)r需要乘以ana^nan,已知an=(a2)n2a^n=(a^2)^{\frac{n}{2}}an=(a2)2n?,所以使a *= a; n /= 2;后,r需要乘的仍然是ana^nan
  • 重復(fù)上述步驟,直到n為0為止。r即為最終結(jié)果

4.(擴(kuò)展)遞歸求冪

【題解代碼】

解法1:循環(huán)求冪

#include <bits/stdc++.h> using namespace std; int main() {int a, n, r = 1;cin>>a>>n;for(int i = 0; i < n; ++i)r *= a;cout<<r;return 0; }

解法2:調(diào)用<cmath>中pow()函數(shù)

#include<bits/stdc++.h> using namespace std; int main() {int a, n;cin>>a>>n;cout<<(int)pow(a, n);//cout直接輸出浮點(diǎn)數(shù)相當(dāng)于用printf以%g形式輸出,當(dāng)有效數(shù)字位數(shù)很多時(shí)會(huì)以科學(xué)計(jì)數(shù)法的形式輸出。轉(zhuǎn)為int型后就會(huì)直接輸出數(shù)字。return 0; }

解法3:快速冪

#include<bits/stdc++.h> using namespace std; int main() {int a, n, r = 1;//r:結(jié)果cin>>a>>n;while(n > 0){if(n % 2 == 1)r *= a;a *= a;n /= 2;}cout<<r;return 0; }

解法4:遞歸求冪

#include <bits/stdc++.h> using namespace std; int mi(int a, int n) {if(n == 0)return 1;elsereturn a * mi(a, n - 1); } int main() {int a, n, r = 1;cin>>a>>n;cout<<mi(a, n);return 0; }

總結(jié)

以上是生活随笔為你收集整理的信息学奥赛一本通 1069:乘方计算 | OpenJudge NOI 1.5 13的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。