文章目錄
- 1、遞回方式列印
- 演算法思路
- 代碼實作
- 運行結果
- 2、非遞回方式列印
- 演算法思路
- 程式的實作
- 運行結果
1、遞回方式列印
演算法思路
我們用求余的方式丟棄整數的最高位,用除法的操作列印需要輸出的
每一位個數,利用遞回的原理進行列印,
代碼實作
void func(int n){
if (n > 9){
func(n / 10);
}
printf("%d\n",n%10);
}
int main()
{
int n = 1234;
func(n);
return 0;
}
運行結果
1
2
3
4
2、非遞回方式列印
演算法思路
基本思想和遞回的方式一樣,不一樣的是非遞回方式不能像遞回方式呼叫函式本身,這里我們需要引入兩個變數對程式進行優化引入count 來計算整數的位數,bill來保存10的n次方,這樣就可以根據回圈依次得出結果
程式的實作
// 計算整數的位數
int func(int n){
int count = 0;
for (int i = 0; i <= n; i++){
count++;
n = n / 10;
}
return count;
}
int main()
{
int n = 1234;
int bill = 1;
int ret = func(n);
for (int i = 0; i < ret; i++){
bill *= 10;
}
while (n != 0){
printf("%d\n", n / bill);
n = n % bill;
bill = bill / 10;
}
system("pause");
return 0;
}
運行結果
1
2
3
4
請按任意鍵繼續. . .
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/203677.html
標籤:java
下一篇:Codeforces Round #681 (Div. 2, based on VK Cup 2019-2020 - Final)
