Problem
215 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.
What is the sum of the digits of the number 21000?
Solution
private static final int N = 1000;
public static void main(String[] args) {
String result = "1";
for (int i = 1; i<=N; i++){
result = times2(result);
}
System.out.println(sumDigits(result));
}
private static String times2(String num){
String result = "";
int carryOver = 0;
for (int i = num.length()-1; i>=0; i--){
int temp = Integer.parseInt(num.charAt(i)+"") * 2 + carryOver;
result = String.valueOf(temp % 10) + result;
carryOver = temp >= 10 ? 1 : 0;
}
if (carryOver == 1){
result = "1"+result;
}
return result;
}
private static int sumDigits(String num){
int result = 0;
for (int i = 0; i<num.length(); i++){
result += Integer.parseInt(num.charAt(i)+"");
}
return result;
}
No comments:
Post a Comment