Bruteforce Algorithm to Compute the Maxmium Powerful Digit Sum u
- 时间:2020-09-09 13:16:32
- 分类:网络文摘
- 阅读:141 次
A googol (10100) is a massive number: one followed by one-hundred zeros; 100100 is almost unimaginably large: one followed by two-hundred zeros. Despite their size, the sum of the digits in each number is only 1.
Considering natural numbers of the form, ab, where a, b < 100, what is the maximum digital sum?
Maxmium Powerful Digit Sum using Java’s BigInteger
Given a and b are in short range of [0 to 99]. There bruteforce algorithm should be more than enough to solve the problem. We need to check total 100*100 different combinations of a to the power b.
In order to hold such large number, we can use array, or in Java, we can simply use the java.math.BigInteger. See below Java’s trivial implementation using the BigInteger. The result (BigInteger) is converted to String type, then the digits are sum, then updating the maximum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | package com.helloacm; import lombok.var; import java.math.BigInteger; public class Main { public static void main(String[] args) { int ans = 0; for (var a = 2; a < 100; ++ a) { for (var b = 2; b < 100; ++ b) { var c = BigInteger.valueOf(a).pow(b); var v = c.toString(); var sum = 0; for (var x: v.toCharArray()) { sum += x - 48; ans = Math.max(sum, ans); } } } System.out.println(ans); } } |
package com.helloacm;
import lombok.var;
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
int ans = 0;
for (var a = 2; a < 100; ++ a) {
for (var b = 2; b < 100; ++ b) {
var c = BigInteger.valueOf(a).pow(b);
var v = c.toString();
var sum = 0;
for (var x: v.toCharArray()) {
sum += x - 48;
ans = Math.max(sum, ans);
}
}
}
System.out.println(ans);
}
}The answer is 972.
–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:晏子不死君难原文及翻译 子产告范宣子轻币原文及翻译 祁奚请免叔向原文及翻译 驹支不屈于晋原文及翻译 吕相绝秦原文及翻译 诗词名句鉴赏:一顾倾人城,再顾倾人国。 诗词名句鉴赏:汉军已略地,四面楚歌声。 写人作文严厉的妈妈作文100字 读《圆明园的毁灭》有感1000字 春天的到来作文100字
- 评论列表
-
- 添加评论