题目
2^15=32768 且各位数之和为 3+2+7+6+8=26,求 2^1000 各个位数之和。
解析
注意:2^1000超过long类型的范围,可想到任意大整数类型,BigInteger
第一步:求出2^1000用变量end表示
第二步:将end转换为字符串
第三步:将遍历字符串,将对应的字符转换为数字,求和
代码
public class chapter7 {
public static void main(String[] args) {
BigInteger first=new BigInteger("2");
BigInteger end=new BigInteger("1");
// 通过i来计数,来计数乘积2的次数
int i=1;
while(i<=1000){
// 注意:end.multiply(字符串)有返回值,不会直接改变end的值
end=end.multiply(first);
i++;
}
// sum记录每个位数上面的值的和
int sum=0;
// 将任意大整数BigInteger类型转换为字符串
String str=end.toString();
// 遍历字符串中的每个字符,将对应的字符转换为对应的数字,求和
for(int j=0;j<str.length();j++){
char temp=str.charAt(j);
int t=temp-'0';
sum+=t;
}
System.out.println(sum);
// 输出结果:1366
}
}