例如,如果给定999
例如等于3,那么说n
的最有效方法是什么。
这就是我现在得到的,但是我想知道是否还有一种更优雅的方式。
public static int largestPossibleNumber(int numDigits) {
return Integer.parseInt(new String(new char[numDigits]).replace("\0", "9"));
}
用法示例:
for (int i = 1; i <= 5; i++) {
System.out.println(largestPossibleNumber(i));
}
输出:
9
99
999
9999
99999
答案 0 :(得分:2)
您仅有 8 个有效答案,因此您可以硬编码:
private static int[] s_Numbers = {
0, 9, 99, 999, 9999, 99999, 999999, 9999999, 99999999};
private static int largestPossibleNumber(int n) {
return s_Numbers[n];
}
答案 1 :(得分:2)
您要寻求最有效的方式。很难证明某种方式是最有效的-它至少需要实现和基准测试多种方法。
但是这是一种非常快速的方法-只需创建一个Map
或使用一个switch
,请参见下文。
这是有效的,因为int
的大小是固定的。但是请注意,此方法不会扩展到BigInteger
s。
public static int largestPossibleNumber(final int numDigits) {
switch (numDigits) {
case 1: return 9;
case 2: return 99;
case 3: return 999;
case 4: return 9999;
case 5: return 99999;
case 6: return 999999;
case 7: return 9999999;
case 8: return 99999999;
case 9: return 999999999;
case 10: return Integer.MAX_VALUE;
default: throw new IllegalArgumentException();
}
}
答案 2 :(得分:1)
var element = document.getElementById('menu-item');
element.getElementsByTagName("a")[0].classList.add('js-target-scroll');
答案 3 :(得分:0)
psycopg2.extras.execute_values(cursor, query, data, page_size=100)