gpt4 book ai didi

java - 数字不会增加

转载 作者:行者123 更新时间:2023-11-29 08:14:18 25 4
gpt4 key购买 nike

首先,我知道增量回调是不正确的。我不知道该怎么办。当遇到需要回调的情况时,我需要 increment 来使用 temp 。我无法更改增量以将参数传递给它,因为评分者测试脚本不允许这样做。第二个问题是它不会增加任何输入。例如,如果您只是对数字 23 调用 increment,它只会返回 23。评分器的测试脚本如下所示:

public class TestBigNaturalSimple {

public static void main(String[] args) {
BigNatural b1 = new BigNatural(); // default constructor
BigNatural b2 = new BigNatural(23); // one-argument int constructor
BigNatural b3 = new BigNatural("346"); // one-argument String constructor
BigNatural b4 = new BigNatural(b2); // one-argument BigNatural
// constructor

b1.increment();
b3.decrement();

System.out.println(b1.toString()); // should print out 1
System.out.println(b4.toString()); // should print out 23
}
}

我的代码是:

public class BigNatural {

private String num;

public BigNatural(String input) {
num = input;
}


public BigNatural(BigNatural input) {
num = input.toString();
}

public BigNatural(Integer input) {
num = input.toString();
}

public BigNatural() {
Integer i = 0;
num = i.toString();
}

public void increment() {
Integer first = 0;
Character ch = num.charAt(num.length()-1);
Integer last = Character.digit(ch, 10);

if (num.length() > 1)
{
if (last < 9) {
last++;
}
else
{
if (num.length() >= 2)
{
last = 0;
String temp = new String(num.substring(0, num.length()-2));
increment();
}
else
{
last++;
}
}
}
else
{
if (last < 9)
{
last++;
}
else
{
last = 0;
first = 1;
}
}

String t = last.toString();


if (first > 0)
{
String x = first.toString();
num.concat(x);
}

num.concat(t);
}

public void decrement() {
Character ch = num.charAt(num.length()-1);
Integer last = Character.digit(ch, 10);

if(num.length() > 1)
{
if(last == 0)
{
String temp = new String(num.substring(0, num.length()-2));
decrement();
}
else
{
last--;
}
}
else
{
if(last > 0)
{
last--;
}
else
{
last = 0;
}
}

String t = last.toString();
num.concat(t);
}


public String toString() {
return num;
}
}

最佳答案

这一定是我见过的最复杂的增加数字的方法。 ;) 我假设您必须那样做。

据我所知,您没有在任何地方更改 num。如果您使用调试器,我希望这很明显。 ;)

如果您希望 num 发生变化,请尝试使用 num = num.concat(t)

注意:字符串是不可变的,所以你不能改变它,你只能替换它。

编辑:这是为您自己的兴趣而提供的版本。你的教授会知道你没有写这个,所以不要复制它。 ;)

public void increment() {
num = increment(num);
}
private static String increment(String s) {
if (s.length() <= 0) return "1";
char ch = s.charAt(s.length() - 1);
String top = s.substring(0, s.length() - 1);
return ch < '9' ? top + ++ch : increment(top) + '0';
}

关于java - 数字不会增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5714074/

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