【发布时间】:2019-04-07 12:11:34
【问题描述】:
我最近做了一个代码测试。有一个我无法解决的问题。现在我正在家里尝试,我想寻求帮助。我不记得完整的问题语言,但我记得程序将如何响应的输出。我们开始吧。
“编写一个java程序,对于给定的数字N,需要找到给定N的最小数字。N也可能是十亿个数字。” {这可能不是准确的,抱歉}
例如:
N=1 则 o/p 为 0。
N=123 则 o/p 为 100
N=1234 则 o/p 为 1000,依此类推。
我的解决方案:--只是一种解决方法,这不是实际逻辑。
class Solution {
public int solution(int N) {
int pointer=0;
if (N == 1) {
return 0;
} else {
String digitsCount = Integer.toString(N);
for(int i = 0; i < digitsCount.length(); i++) {
pointer++;
}
StringBuffer subString = new StringBuffer();
int count=0;
while(count < pointer-1) {
subString.append("0");
count++;
}
subString = subString.insert(0, "1");
return Integer.parseInt(subString.toString());
}
}
}
【问题讨论】:
-
你能解释一下为什么输出是这样的吗?为什么当 N=1 时它应该输出 0?为什么当 n=123 时它应该输出 100?
-
好吧,我明白了。所以它是这样的:N=123 => 总位数是 3。可能有 3 位数的最小数字是 100。N=1 => 总位数只有 1。可能有 1 位数的最低数字是0.
-
我明白了。你能展示你在这个问题上的尝试吗?你可以edit发帖。
-
我已经尝试过解决方案,但不知何故,我对此感觉不太好。我无法通过 java 找到逻辑,因此我刚刚编写了解决方法代码。但不是那么好。 {我会补充问题}
-
你的解决方案有什么问题?