탄소 언어 피보나치 시리즈 작업 예제

탄소 언어 초보자 시리즈:

Google은 최근에 Carbon programming language을 도입했습니다.

Carbon 언어는 아직 초기 단계에 있으며 아직 준비되지 않았습니다. 그러나 새로운 언어를 배우기 위해 주변을 탐색하고 싶습니다. 탄소 언어를 설정한 후 피보나치 수열 예제를 반복하여 실행하려고 했지만 작동하지 않았습니다. 그래서 재귀 예제를 시도했고 효과가 있었습니다. 전체 작업 예는 다음과 같습니다.
while 루프 + 재귀를 사용하는 반복 버전을 선호하는 경우 여기에서 확인할 수 있습니다: Carbon language Fibonacci series, print nth Fibonacci number

package sample api;

fn Fibonacci(n: i32, a: i32, b: i32) -> i32 {
    Print("{0} ", a);
    if (n == 0) {
        return a;
    }
    return Fibonacci(n - 1, b, a + b);
}


fn Main() -> i32 {
    var n: i32 = 6;
    let nthFibNumber : auto = Fibonacci(n, 1, 1);
    Print("*****");
    Print("(N+1)th fibonacci number : {0}", nthFibNumber);
    return nthFibNumber;
}



코드 이해:



재귀 코드를 사용하여 n 번째 피보나치 수를 계산합니다.fib(n) = fib(n-1) + fib(n-2)
시퀀스를 인쇄하려면 for 루프가 아직 카본에서 작동하지 않기 때문에 재귀를 사용하여 n번째 숫자를 인쇄합니다. 각 단계에서 ab를 사용하여 ba+b의 위치를 ​​바꾸고 재귀 시작 부분에 n번째 숫자를 인쇄합니다.

fn Fibonacci(n: i32, a: i32, b: i32) -> i32 {
    Print("{0} ", a);
    if (n == 0) {
        return a;
    }
    return Fibonacci(n - 1, b, a + b);
}


마지막으로 우리는 이것을 메인 메소드에서 호출합니다. 한 가지 주의할 점은 메서드가 재귀에서 n+1 번째 피보나치 수를 반환할 때마다입니다. 따라서 n 번째 피보나치 수를 인쇄하는 것도 더 쉽습니다.

fn Main() -> i32 {
    var n: i32 = 6;
    let nthFibNumber : auto = Fibonacci(n, 1, 1);
    Print("*****");
    Print("(N+1)th fibonacci number : {0}", nthFibNumber);
    return nthFibNumber;
}


추가 Carbon 언어 읽기:
Carbon language vs Rust detailed comparison

Carbon language memory management

이것은 초심자를 위한 탄소 언어 시리즈의 일부입니다. 카본에 관한 궁금한 사항은 언제든지 문의주세요.

좋은 웹페이지 즐겨찾기