6-8 遞迴實現順序輸出整數 (15分)
阿新 • • 發佈:2020-12-29
技術標籤:演算法
本題要求實現一個函式,對一個整數進行按位順序輸出。
函式介面定義:
void printdigits( int n );
函式printdigits應將n的每一位數字從高位到低位順序打印出來,每位數字佔一行。
裁判測試程式樣例:
#include <stdio.h>
void printdigits( int n );
int main()
{
int n;
scanf("%d", &n);
printdigits(n);
return 0;
}
/* 你的程式碼將被嵌在這裡 */
輸入樣例:
12345
輸出樣例:
1
2
3
4
5
程式碼:
void printdigits( int n )
{
if(n<10)
{
printf("%d\n",n);
}
if(n>=10)
{
printdigits(n/10);
printf("%d\n",n%10);
}
}
這個題對於初學遞迴函式的同學可能算是比較難的了,說實話也不難,就是很繞
我們來一步一步分析此題
輸入12345的時候,由於它大於10,所以先執行大於10的這個if語句中的第一句:是將12345除10之後的1234再次輸入這個同種函式,然後1234又大於10,還是執行大於10的這個if語句中的第一句:再將1234除10之後的123放入這個同種函式,最後成1的時候,是小於10的,輸出1並換行,然後執行n= =12時的(n==12,即是將12除10之後剩的1輸出,然後執行接著的printf語句輸出12%10後的2,依次返回,完工)