藍橋杯 遞歸輸出 C++算法提高 HERODING的之路

資源限制
時間限制:1.0s 內存限制:512.0MB
問題描述
  編寫遞歸函數,將組成整數的所有數字逐個輸出,每個數字後面加上一個減號“-”,例如對於整數123,該函數將輸出1-2-3- 。編寫主函數測試該遞歸函數。
輸入格式
  輸入一個整數n
輸出格式
  如題目要求,把n的每個數字後面加一個減號”-“輸出
樣例輸入
一個滿足題目要求的輸入範例。
例:
123
樣例輸出
與上面的樣例輸入對應的輸出。
例:
1-2-3-
數據規模和約定
  輸入n>0,必須使用遞歸調用來實現!

解題思路:
爲了遞歸首先要把數字的各個位拆分開來,這裏我用了一個while循環實現,每次都把最後一位放入數組中,並刪除最後一位,直到沒有位數(即爲小於1的小數),然後再進行遞歸調用,遞歸思路是直到數組的最後纔開始輸出(因爲存儲是反向存儲),代碼如下:

#include<bits/stdc++.h>

using namespace std;

int a[100];

void digui(int i,int length){
	if(i != length){
		digui(i + 1, length);
	}
	cout << a[i] << "-";
}

int main(){
	int n;
	int len = 0;
	cin >> n;
	while(n >= 1){
		a[len ++] = n % 10;
		n /= 10;
	}
	digui(0, len - 1);
	return 0;
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章