처음으로 알고있는 증가분으로 콜백이 잘못되었습니다. 나는 무엇을해야할지 모르겠다. 콜백이 필요한 케이스에 부딪 힐 때 temp를 사용하려면 증분이 필요합니다. 나는 그레이더 테스트 스크립트가 그것을 허용하지 않기 때문에 매개 변수를 전달하기 위해 증가분을 변경할 수 없다. 두 번째 문제는 입력을 증가시키지 않는 것입니다.숫자가 증가하지 않을 것입니다.
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;
}
}
당신이 그것을 놓칠 때가 긴 밤이었습니다. 잘 우리는 지금 어디인가에 도착하고있다. 내가 겪고있는 유일한 다른 큰 문제는 기본 케이스가> 9 일 때 온도에 대한 증가분을 호출하는 방법입니다. – Bigby
당신은 재진입을 사용하려고하는 것으로 보입니다. 이를 수행하려면 모든 인수를 매개 변수로 전달하고 결과를 리턴해야합니다. 이것이 당신이 성취하려고하는 것입니까? –
예, 원래는 temp.increment()를 사용하여 temp에서 증가분을 호출하지만 곧 작동하지 않는다는 것을 알게되었습니다. – Bigby