迅雷校招------2的N次方
阿新 • • 發佈:2018-11-09
對於一個整數N(512 <= N <= 1024),計算2的N次方並在螢幕顯示十進位制結果。
輸入描述:
輸入一個整數N(512 <= N <= 1024)
輸出描述:
2的N次方的十進位制結果
示例1
輸入
512
輸出
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
題目連結:https://www.nowcoder.com/questionTerminal/e9a4919b8848451d9aff81e3cdd133b1
類似於大數乘除,我接下來就總結一下大數乘除
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> using namespace std; string Nof2(int n) { string res("1"); int c=0;//進位 for(int i=0;i<n;i++) { for(int j=res.length()-1;j>=0;j--) { int tmp=((res[j]-'0')<<1)+c; c=tmp/10; res[j]=tmp%10+'0'; } if(c>0) { res.insert(res.begin(),c+'0'); c=0;//進位以後,c標誌清 000 } } return res; } int main() { int n; while(cin>>n) cout<<Nof2(n)<<endl; return 0; }
程式執行結果如下: