题目描述
对于一个整数N(512 <= N <= 1024),计算2的N次方并在屏幕显示十进制结果。
输入描述:
输入一个整数N(512 <= N <= 1024)
输出描述:
2的N次方的十进制结果
示例1
输入
512
输出
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
思路:用一个数组来存储结果,每次计算时将每位*2,然后判断进位,暂时没想到如何只用最小的方式存储结果,只是初始化了一个较大的长度。
import java.util.Scanner;
public class Xunlei01 {
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int n = Integer.parseInt(in.nextLine());
int[] result = new int[1000];
result[0] = 1;
int t=1;
while (t<=n){
for (int i=0; i<result.length; i++){
int tmp = result[i];
tmp *= 2;
result[i] = tmp;
}
for (int i=0; i<result.length-1; i++){
int tmp = result[i];
if (tmp >= 10){
result[i] = tmp%10;
result[i+1] += tmp/10;
}
}
t++;
}
boolean flag=false;
StringBuilder builder = new StringBuilder();
for (int i=result.length-1; i>=0; i--){
if (result[i] != 0){
flag = true;
}
if (flag == true){
builder.append(result[i]);
}
}
System.out.println(builder.toString());
}
}

本文介绍了一种使用数组存储和计算2的N次方(512<=N<=1024)的方法,通过逐位乘以2并处理进位,最终输出十进制结果。

被折叠的 条评论
为什么被折叠?



