// Tribonacci 수 T(n)은 Fibonacci와 유사함, 여기서 T(n) = T(n-1) + T(n-2) + T(n-3), T(1)=T(2)=1, T(3)=2. // 첫 20개 Tribonacci 수를 인쇄하는 프로그램 Tribonacci를 작성. 하라는데,, 이 밑에 코드는 피보나치에 관한 힌트 코드인데 참고하라고 올려주셨고,, 근데 저는 트리보나치도 처음 들어보고,, 검색해도 잘 모르겠고 자바도 초본데,... 시작을 어떻게 할지 모르겠는데 알려주세요ㅠㅁㅠ ``` /** * Tribonacci */ public class Tribonacci { public static void main(String[] args) { int n = 3; int fn; int fnMinus1 = 1; int fnMinus2 = 1; int nMax = 20; int sum = fnMinus1 + fnMinus2; double average; System.out.println("The first" + nMax + "Fibonacci numbers are:"); while (n <= nMax) { ++n; fnMinus2 = fnMinus1; fnMinus1 = fn; } } } ```
## 반복문과 조건문 연습 아래 링크를 확인하세요. + 트리보나치 (http://cloudstudying.kr/codes/1412)
실례합니당........... 주신 링크 참조해서 만들어봐쓴ㄴ데,, 저는 왜 오류가 날까요ㅠㅠ // Tribonacci 수 T(n)은 Fibonacci와 유사함, 여기서 T(n) = T(n-1) + T(n-2) + T(n-3), T(1)=T(2)=1, T(3)=2. // 첫 20개 Tribonacci 수를 인쇄하는 프로그램 Tribonacci를 작성. ``` package javaReportChapter1; public class tribonacci { public static void main(String[] args) { // TODO Auto-generated method stub int n = Integer.parseInt(args[0]); printTribonacciNumbers(n); } private static void printTribonacciNumbers(int nMax) { int fnMinus1 = 2; int fnMinus2 = 1; int fnMinus3 = 1; int i = 1; while (i <= nMax) { int fn = fnMinus1 + fnMinus2 + fnMinus3; switch (nMax) { case 1: fn = 1; break; case 2: fn = 1; break; case 3: fn = 2; break; default: break; } fnMinus3 = fnMinus2; fnMinus2 = fnMinus1; fnMinus1 = fn; System.out.printf("T(%2d) = %6d\n", i++, fn); } } } ```
에러가 어떻게 나는지 알려주시겠어요?
디버깅을 하면 int n = Integer.parseInt(args[0]); 이 부분이 문제라고 나와요!
int n = 20; 으로 바꿔보세용
앗 감사합니다! 실행은 되구요, 결과값이 이렇게 나오는데 ,, 위에 올려주신 링크의 결과값이랑 달라요ㅠ-ㅠ T( 1) = 4 T( 2) = 7 T( 3) = 13 T( 4) = 24 T( 5) = 44 T( 6) = 81 T( 7) = 149 T( 8) = 274 T( 9) = 504 T(10) = 927 T(11) = 1705 T(12) = 3136 T(13) = 5768 T(14) = 10609 T(15) = 19513 T(16) = 35890 T(17) = 66012 T(18) = 121415 T(19) = 223317 T(20) = 410744
최종 코드 올려보시겠어요?
``` public static void main(String[] args) { // TODO Auto-generated method stub int n = 20; printTribonacciNumbers(n); } private static void printTribonacciNumbers(int nMax) { int fnMinus1 = 2; int fnMinus2 = 1; int fnMinus3 = 1; int i = 1; while (i <= nMax) { int fn = fnMinus1 + fnMinus2 + fnMinus3; switch (nMax) { case 1: fn = 1; break; case 2: fn = 1; break; case 3: fn = 2; break; default: break; } fnMinus3 = fnMinus2; fnMinus2 = fnMinus1; fnMinus1 = fn; System.out.printf("T(%2d) = %6d\n", i++, fn); } } ```
윌리를 찾았습니다..... 변경 전 ``` switch (nMax) { ``` 변경 후 ``` switch (i) { ```
헐헐 나와요 ㅠㅠㅠㅠㅠ감사합니다 근데 이거 관련 없는 질문이긴 한데,, 한 이틀전 부터 질문하기 누르면 ``` NoMethodErrorin QuestionsController#new undefined method `id' for nil:NilClass Extracted source (around line #36): challenge_id = code.challenge.id end @question = Question.new(text: text, challenge_id: challenge_id, code_id: code.id) end # GET /questions/1/edit Rails.root: /home/shpark86/www/cloudstudying.kr/releases/20180921155534 Application Trace | Framework Trace | Full Trace app/controllers/questions_controller.rb:36:in `new' ``` 막 이렇ㄱ ㅔ 오류가 뜨는데 왜 이렇게 된걸까요,,? 저 이제 질문못하나요..?
헉!!! 버그리포팅 감사합니다. 확인해 볼께요. 혹시 지금 질문 새로 생성하면 안되나요?
와!!! 감사합니다 큰일 날뻔했네요 ㅠㅠㅠㅠㅠ 덕분에 버그 고쳤습니다~~~~~~~~~~~~₩₩
어? 아뇨아뇨 이제 돼요! 고맙습니다!