【问题标题】:Display the smallest number from an input in Java [closed]显示Java输入中的最小数字[关闭]
【发布时间】:2015-06-02 12:36:46
【问题描述】:

例如:

如果输入为 550,则答案为 0
如果输入为 32847923846,则答案为 2

输入的长度是可变的。

我已经尝试过 arraylist 和缓冲阅读器类,但我无法获得,因为输入的长度是可变的

【问题讨论】:

  • 如果长度是可变的......为什么不让你的数组长度可变呢?或者使用List
  • 我用过,但如果你能帮忙,还是有错误?如何使用列表?
  • 错误是什么?您是否甚至费心查找List?官方 Java 文档是一个很好的来源。

标签: java


【解决方案1】:

第一步,将数字向下舍入到最接近的 10,如 here 所示。

int round(double i, int v){
    return Math.floor(i/v) * v;
}

然后从原始数字中减去这个数字。

int value = 34554674;
int roundedDown = round(value, 10);

int smallest = value - roundedDown;

this Ideone 看到的。

【讨论】:

  • 如果我正确理解 OP,他会寻找最小的数字。看看他的32847923846 示例,预期的输出是2 而不是6123 的预期输出为 1。但他接受了这个答案,所以无论如何。
  • 啊是的..我一定是看错了,但是你是对的。要么他/她会发表评论并要求更正,要么这是两个错误导致正确的时代之一。
  • 否则他/她会为他/她的作业提交错误的解决方案。我会很好的。
  • 我觉得自己像个邪恶的天才。
  • 或邪恶的白痴,因为事实证明我什至无法正确阅读。
【解决方案2】:

简单... 使用此将您的 int i =1234; 值更改为 char[]...

char[] chars = ("" + i).toCharArray();

在此之后使用循环查找最小值并打印...

【讨论】:

  • 如何求最小值?就像整数一样。
  • 是的,方式相同
【解决方案3】:

如果输入只有 1 行:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
char[] c = in.readLine().toCharArray();
char result = c[0];
for (char i : c) result = Math.min(result, i);

或者如果你有长整数:

long l;
// ...
char[] c = String.valueOf(l).toCharArray();
char result = c[0];
for (char i : c) result = Math.min(result, i);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多