私は、整数と数字を別々に印刷するアルゴリズムを作成しようとしています。私はそれを擬似コードで書かなければなりません。数字を逆にするアルゴリズムの書き方を知っています。
digi(n):
while n != 0:
x = n % 10
n = n // 10
print (x)
しかし、数字を正しい順序で印刷するアルゴリズムを作成する方法がわかりません。たとえば、入力は整数123467
で、出力は1 2 3 4 6 7
です。数値はユーザーから入力され、文字列に変換することはできません。アルゴリズムの作成を開始するのに助けが必要です。
_log n
_は、n
の(10進数の)桁数を示します。
1234 / (10^[4-1]) = 1.234
は_1
_に切り捨てられることに注意してください。必要に応じて(_mod 10
_)を繰り返し、各桁を印刷します。
1.234 -> 1
_12.34 % 10 -> 2.34 -> 2
_123.4 % 10 -> 3.4 -> 3
_1234 % 10 -> 4
_それらを逆に印刷するアルゴリズムがすでにある場合は、それらをスタックに入れてから、順序を逆にするスタックを印刷します。
通常のアルゴリズムは、n/10で再帰し、n%10を出力する再帰関数を作成することです。負の数を正しく処理するための追加のクレジット。
再帰的方法
function print_straightforward
if(N<10)
print N
else
print_straightforward(N/10);
print N%10