Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C đảo ngược số dùng hàm đệ quy


"Hàm đệ quy" là hàm tự gọi lại chính nó trong thân hàm.

Ví dụ:

  • Hàm fact() tính giai thừa của số nguyên 'N', là tích của tất cả số nguyên từ 1 đến N.

  • fact() với đối số 1 (hoặc 0) trả về 1. Ngược lại trả về n*fact(n-1), quá trình lặp lại cho đến khi n = 1.

Fact(5) = 5 * fact(4) = 5*4*3*fact(3) = 5*4*3*2*fact(2) = 5*4*3*2*1*fact(1) = 5*4*3*2*1 = 120.

Ví dụ

Chương trình C sau dùng hàm đệ quy để đảo ngược số (lưu ý: ví dụ đầu tiên thực tế tính giai thừa, ví dụ thứ hai mới đảo số):

#include <stdio.h>
main() {
    int n, f;
    int fact(int);
    clrscr();
    printf("nhap mot so");
    scanf("%d", &n);
    f = fact(n);
    printf("gia tri giai thua = %d", f);
}
int fact(int n) {
    int f;
    if ((n==1) || (n==0))
        return 1;
    else
        f = n * fact(n-1);
    return f;
}

Kết quả

Đầu ra như sau:

Nhap mot so 5
Gia tri giai thua = 120

Chương trình C khác đảo ngược số dùng hàm đệ quy:

#include <stdio.h>
int sum = 0, rem;
int main() {
    int num, revNum;
    printf("nhap so:\n");
    scanf("%d", &num);
    revNum = revNumFunction(num); // gọi hàm đảo số
    printf("so sau khi dao: %d", revNum);
    return 0;
}
revNumFunction(int num) {
    if (num) {
        rem = num % 10;
        sum = sum * 10 + rem;
        revNumFunction(num / 10);
    } else
        return sum;
}

Kết quả

Đầu ra như sau:

nhap so: 1357
so sau khi dao la: 7531