gpt4 book ai didi

Java - 扩展形式的数字

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:01 24 4
gpt4 key购买 nike

我已经给出了数字并希望它以扩展形式作为字符串返回。例如

expandedForm(12); # Should return "10 + 2"
expandedForm(42); # Should return "40 + 2"
expandedForm(70304); # Should return "70000 + 300 + 4"

我的函数适用于第一种和第二种情况,但对于 70304,它给出了这个:

70 + 00 + 300 + 000 + 4

这是我的代码

import java.util.Arrays;


public static String expandedForm(int num)
{

String[] str = Integer.toString(num).split("");
String result = "";

for(int i = 0; i < str.length-1; i++) {
if(Integer.valueOf(str[i]) > 0) {
for(int j = i; j < str.length-1; j++) {
str[j] += '0';
}
}
}

result = Arrays.toString(str);
result = result.substring(1, result.length()-1).replace(",", " +");
System.out.println(result);

return result;
}

我认为第二个循环有问题,但无法弄清楚原因。

最佳答案

您应该将“0”添加到 str[i],而不是 str[j]:

  for(int i = 0; i < str.length-1; i++) {
if(Integer.valueOf(str[i]) > 0) {
for(int j = i; j < str.length-1; j++) {
str[i] += '0';
}
}
}

这将导致:

70000 + 0 + 300 + 0 + 4

您仍然需要摆脱 0 数字。

摆脱它们的一种可能方法:

result = result.substring(1, result.length()-1).replace(", 0","").replace(",", " +");

现在输出是

70000 + 300 + 4

关于Java - 扩展形式的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52202986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com