1009_2のN乗
2のN乗
時間制限(一般/Java) : 1000 MS/ 3000 MS 実行メモリ制限:65536 KByte総提出:2504 試験合格:1213
試合の説明
プログラムは2のN乗を正確に計算します。(Nは100と1000の間の整数)です。
入力
正の整数N(100≦N≦1000)
出力
2のN乗
サンプル入力
200
サンプル出力
16069380 442589275541962092116262252222223782792835301376 6
タイトルソース
NUPT
本体は主に大きな数の処理を考慮しており、この結果はデータタイプの記憶範囲を超えている。
考え方:各ビットの数を配列で記憶します。
コードは以下の通りです
時間制限(一般/Java) : 1000 MS/ 3000 MS 実行メモリ制限:65536 KByte総提出:2504 試験合格:1213
試合の説明
プログラムは2のN乗を正確に計算します。(Nは100と1000の間の整数)です。
入力
正の整数N(100≦N≦1000)
出力
2のN乗
サンプル入力
200
サンプル出力
16069380 442589275541962092116262252222223782792835301376 6
タイトルソース
NUPT
本体は主に大きな数の処理を考慮しており、この結果はデータタイプの記憶範囲を超えている。
考え方:各ビットの数を配列で記憶します。
コードは以下の通りです
#include <iostream>
using namespace std;
int main()
{
int N;
cin >> N;
if (N<100 || N>1000)
return 0;
int a[1001] = { 0 };
a[1] = 1; // 1
int wshu = 1; //
int jw; //
for (int m = 1; m <= N; m++)
{
jw = 0; //
for (int i = 1; i <= wshu; i++)
{
a[i] = 2 * a[i] + jw;
jw = a[i] / 10;
a[i] %= 10;
}
if (jw)
{
wshu++;
a[wshu] = jw;
}
}
for (int n = wshu; n > 0; n--)
cout << a[n];
cout << endl;
return 0;
}