1. 程式人生 > >C語言編程實現 輸入一個非負整數,返回組成它的數字之和(遞歸方法)

C語言編程實現 輸入一個非負整數,返回組成它的數字之和(遞歸方法)

第四次 use pri int digi pre 編程 res std

此題目基本思想與非遞歸方法思想一樣,主要是對輸入的數進行取數(對10取余)和縮小(整除10)
eg:
1234
第一次 1234%10取得數4,1234/10縮小為123
第二次 123%10取得數3, 123/10縮小為12
第三次12%10取得數2, 12/10縮小為1
第四次 當調用的數小於十直接取得此數為1

源代碼:

#include<stdio.h>
#include<stdlib.h>
int DigitSum(int number)
{
    int suu,m ;
    while(number)
    {
        m = number % 10;//取數
        number /= 10;//數縮小
        return m + DigitSum(number);
    }
    return number;//遞歸出口
}
int main()
{
    int number,i=0,temp,m=1;
    int result;
    printf("請輸入數字\n");
    scanf("%d", &number);
    temp = number;
    result = DigitSum(number);
    printf("計算結果為%d\n", result);
    system("pause");
    return 0;
}

C語言編程實現 輸入一個非負整數,返回組成它的數字之和(遞歸方法)