游客 Signup | Login
中文 | En

2283 - 高精度入门第3题:高精度乘单精度《计算2的N次方》

任意给定一个正整数N(0 <= N≤1000),计算2的N次方的值。

Input

有多组测试数据。

输入只有一个正整数N。

Output

每组数据输出一行,为一个整数,表示2的N次方的值。

Sample Input

5
10
65 

Sample Output

32
1024
36893488147419103232

Hint

longint 和 int64 都存不下的,不信?试一试n=65,看看结果是多少。所以要用数组模拟每一位,当然要模拟进位。这道题就像我们小学乘法一样,每个位都用一个独立的单元a[i]表示。建议a[1]表示个位,a[2]表示十位,不然进位就麻烦了。

Source

Input

Output

Examples

Input


                

Output


                

Solution C++

#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    int a[400],n,i,j,len;
    while(scanf("%d",&n)!=EOF)
    {
        memset(a,0,sizeof(a));
        a[1]=1;len=1;
        for(i=1;i<=n;i++)
        {
         for(j=1;j<=len;j++)a[j]*=2;
         for(j=1;j<=len;j++)if(a[j]>9){a[j+1]+=(a[j]/10); a[j]%=10; }
         if(a[len+1]!=0)len++;
        }
        for(i=len;i>=1;i--)printf("%d",a[i]);
        printf("\n");
    }
    return 0;
}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题