2016-07-07 9 views
0

안녕 얘들 아, 그건 바보 같은 질문 일지 모르지만 나는 붙어있다. 나는 순환 숫자 코드 작업을하고있다. 완료 후 나는 모든 정수를 배열에 넣습니다. 그러나 배열의 시작 부분에 빈 셀이 있습니다.이 셀은 적절한 양의 요소로 정리하거나 다른 배열에 넣어야합니다. 그래서 처음부터 0을 제거하는 법. 여기 Java 배열을 다른 배열에 넣으십시오

내 환상 숫자 코드이다

public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     int carry = 0; 

     int[] cyclic = new int[60]; 
     int lastDigit = input.nextInt(); 
     cyclic[cyclic.length - 1] = lastDigit; 



      for (int i = cyclic.length - 2; i >= 0; i--) { 

       cyclic[i] = lastDigit * cyclic[i + 1]; 
       cyclic[i] += carry; 
       if (cyclic[i] > 9) { 
        carry = cyclic[i]/10; 
        cyclic[i] %= 10; 
       } else 
        carry = 0; 
       if (cyclic[i]==1 & cyclic[i+1]== 0) 
        break; 
      } 

      for (int j = 0; j < cyclic.length; j++) 
       System.out.print(cyclic[j]); 
+0

'System.arraycopy' 함수를 보셨습니까? 나는 이것이 당신이하려는 것을 당신이 수행하는 것을 도울 것이라고 생각합니다. – JRSofty

답변

1

당신은 역순 60 개 요소 [0 59]의 배열을 채우고, 즉 59 다음 58 그리고 57 등등.

인쇄하는 동안 인덱스 0, 1, 2 등에서 인쇄합니다.

이것은 첫 번째로 0,1,2에서 채우거나 59,58에서 인쇄해야합니다.

당신이 말할 때 0을 얻고있는 이유는, cyclic 60 개의 int 모든 (60 개) 값에 대한 기억이 지금 0 기본 데이터 형으로 초기화되어있다

int[] cyclic = new int[60]; 

는 0으로 초기화된다 때를 그것에 메모리를 할당하십시오. 그 이유는 "배열의 시작 부분에있는 빈 셀"이 인쇄 후에 0으로 표시되는 이유입니다.

+0

네, 알아 줘서 고맙지 만 계산은 역순으로 작성되었으므로 결국에는 0이 없애고 싶습니다. –

관련 문제