web-dev-qa-db-ja.com

数字を正しい順序で印刷するアルゴリズム

私は、整数と数字を別々に印刷するアルゴリズムを作成しようとしています。私はそれを擬似コードで書かなければなりません。数字を逆にするアルゴリズムの書き方を知っています。

digi(n): 
  while n != 0:
    x = n % 10 
    n = n // 10 
    print (x)

しかし、数字を正しい順序で印刷するアルゴリズムを作成する方法がわかりません。たとえば、入力は整数123467で、出力は1 2 3 4 6 7です。数値はユーザーから入力され、文字列に変換することはできません。アルゴリズムの作成を開始するのに助けが必要です。

1
Aga Waw

_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_
4
Jay

それらを逆に印刷するアルゴリズムがすでにある場合は、それらをスタックに入れてから、順序を逆にするスタックを印刷します。

1
Ryathal

通常のアルゴリズムは、n/10で再帰し、n%10を出力する再帰関数を作成することです。負の数を正しく処理するための追加のクレジット。

1
ddyer

再帰的方法

function print_straightforward
if(N<10)
  print N
else
  print_straightforward(N/10);
  print N%10
1
agent13