2013-10-17 13 views
0

자바 클래스의 숙제에 어려움을 겪고 있습니다. 여기서는 1에서 13 사이의 정수를 취해 숫자로 구성된 3 개의 다른 삼각형을 표시해야합니다. 내가 5를 입력한다면 예를 들어, 결과는 다음과 같습니다자바에서 숫자 삼각형을 프린트하십시오

트라이앵글 1

 1 
    2 3 
    4 5 6 
    7 8 9 10 
    11 12 13 14 15 

삼각형이

1 
    2 6 
    3 7 10 
    4 8 11 13 
    5 9 12 14 15 

삼각형 3

   5 
      4 9 
     3 8 12 
     2 7 11 14 
    1 6 10 13 15 

이미했습니다 첫 번째 삼각형은 괜찮 았지만 내 큰 관심사는 두 번째 삼각형입니다. 나는 아직 세 번째 것을 시도하지 않았다. 다른 하나는 교수님이 프로젝트를 만들 때 어떤 방법을 사용하는지 까다 롭습니다. 즉, 우리는 그가 우리에게 가르쳐 준 것을 사용할 수 있습니다. 그는 우리에게 System.out.printf ("% 3d", n) 문을 사용하여 문자를 구분하고 별도의 클래스 내에서 작성해야한다고 말했습니다.

처음 삼각형의 코드는 다음과 같습니다

void triangle1(int n) 
    { 
     int k = 1; 
     for (int i = 1; i <= n; i++) 
     { 
      for (int j = 0; j < 1; j++) 
      { 
       System.out.printf("%3d", n); 
       k += 1; 
      } 

      System.out.println(); 
     } 
    } 

그래서, 거의, 내가 다른 두 개의 삼각형을 만들 수있는이 표준을 따라야합니다,하지만 난 정말 두 번째에 붙어있어와 나는 어디서부터 시작해야할지 모르겠다. 어떤 도움을 많이 주시면 감사하겠습니다!

+0

그냥 첫 번째 열을 수행하는 프로그램을 작성하는 것이 좋습니다. 그런 다음 그것을 수정하여 처음 두 칸을 수행하십시오. 거기에서 그것은 분명해야합니다. – BevynQ

+0

두 번째 삼각형 시도를 위해 작성한 코드를 표시하십시오. 지금까지 내려 놓은 것을 보자. 그러면 행복하게 올바른 방향으로 조종 할 수있다. – Kon

+0

코드에서'k'가 뭐 사용 되었습니까? – Shaded

답변

0

여기 내가 접근하는 방법입니다.

프로그램은 한 번에 한 줄씩 인쇄하고 한 줄을 인쇄 할 수 없으면 다른 줄을 인쇄하기 시작합니다.

이렇게 말하면 삼각형의 패턴을 알아야합니다.

1 
2 6 
3 7 10 
4 8 11 13 
5 9 12 14 15 

당신은 당신은 다음 행이 n + 1 시작 참조, 첫 번째 숫자 n 있습니다. 행에서 시작되는 다음 번호는 (n + 1) + t이고 t = 4입니다. 거기에 패턴이 있습니다.

세 번째 행은 동일한 패턴을 따릅니다. 첫 번째 숫자는 (n + 1)이고 다른 숫자는 다음과 같이 계산할 수 있습니다. + (t - 1)

처음에했던 것처럼 for 루프를 사용하여 수행 할 수 있습니다.

마지막 삼각형에 대해 동일한 과정을 사용할 수 있습니다. 부호를 변경하면 t가 다른 것과 같습니다.

알고리즘 작성은 모두 패턴을 식별하는 것입니다.

+0

도움을 주셔서 감사합니다! 두 번째 삼각형이 완성되었습니다. 이제 세 번째 삼각형을 마무리하면됩니다. – Atarinerd80

+0

@ Atarinerd80 아무 문제 없어, 다행스럽게 도울 수있어. –

0

주의 깊게 살펴보면 각 숫자와 그 다음에 나오는 숫자 사이에 반복되는 패턴이 있음을 알 수 있습니다.

3 7 10 =>  [3 & 7 differ by 4][7 & 10 differ by 3] 
4 8 11 13 => [4 & 8 differ by 4][8 & 11 differ by 3][11 & 13 differ by 2] 
5 9 12 14 15 => [... differ by 4][...   by 3][...   by 2][... by 1] 

두 번째 삼각형을 만들 때이 정보를 사용할 수 있습니다. 나는 나머지를 너에게 맡길거야. 도움이 되었길 바래요!

0

당신이 CS 학생 인 것 같아서 완성 된 해결책을 제시하지 않겠습니다. 어떻게 해결할 수 있는지 몇 가지 힌트를 드리겠습니다.

프린트 문을 수행하는 것입니다 :

에 대한 전 = 1 J = 0 인쇄 1

에 대한 전 = 0 인쇄 2

2 J I = 2 J에 대한 = 1 인쇄 6

제가 = 3, J = 0 (3) 인쇄

대한 난 J = 3 = 1 프린트 7

FO에 대한 r i = 3 j = 2 print 10

i와 j의 정확한 출력을 계산하는 수식을 찾으십시오. 간단한 선형 조합입니다.

관련 문제