信息学奥赛一本通 1037:计算2的幂 | OpenJudge NOI 1.3 20
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 1037:计算2的幂 | OpenJudge NOI 1.3 20
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 1037:計算2的冪
OpenJudge NOI 1.3 20:計算2的冪
【題目考點】
1. 不同整型數據的范圍
| char | 1 | -127~128 |
| short | 2 | -32,768~32,767 |
| unsigned short | 2 | 0~65,535 |
| int | 4 | -2,147,483,648~2,147,483,647 |
| unsigned int | 4 | 0~4,294,967,295 |
| long long | 8 | -9,223,372,036,854,775,808~9,223,372,036,854,775,807 |
| unsigned long long | 8 | 0~18,446,744,073,709,551,615 |
2. < cmath >庫 乘方函數
- 乘方函數:double pow(double a, double b); 求aba^bab
3. 循環
【解題思路】
觀察變量范圍,n滿足:0<=n<310 <= n < 310<=n<31
n最大值為30,冪最大值為2302^{30}230,在int可以表示的范圍內。
求aba^bab,可以通過循環乘b次a得到結果,也可以調用乘方函數pow(a,b)得到結果
【題解代碼】
解法1:循環
#include<bits/stdc++.h> using namespace std; int main() {int n, r = 1;cin>>n;for(int i = 0; i < n; ++i)r *= 2;cout<<r;return 0; }解法2:調用pow函數
#include <bits/stdc++.h> using namespace std; int main() {int n;cin>>n;cout<<(int)pow(2, n);//pow返回浮點型,直接輸出的話可能會以科學計數法輸出。所以要轉為整型后再輸出。 return 0; }總結
以上是生活随笔為你收集整理的信息学奥赛一本通 1037:计算2的幂 | OpenJudge NOI 1.3 20的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图解排序算法(三)之堆排序
- 下一篇: 信息学奥赛一本通 2018:【例4.3】