設(shè)計一個程序,實現(xiàn)“除k取余法”.

算法分析:從例2的計算過程可以看出如下的規(guī)律:

    若十制數(shù)a除以k所得商是q0,余數(shù)是r0,即a=k·q0+r0,則r0是a的k進制數(shù)的右數(shù)第1位數(shù).

    若q0除以k所得的商是q1,余數(shù)是r1,即q0=k·q1+r1,則r1是a的k進制數(shù)的左數(shù)第2位數(shù).

    ……

    若qn-1除以k所得的商是0,余數(shù)是rn,即qn-1=rn,則rn是a的k進制數(shù)的左數(shù)第1位數(shù).

    這樣,我們可以得到算法步驟如下:

    第一步,給定十進制正整數(shù)a和轉(zhuǎn)化后的數(shù)的基數(shù)k.

    第二步,求出a除以k所得的商q,余數(shù)r.

    第三步,把得到的余數(shù)依次從右到左排列.

    第四步,若q≠0,則a=q,返回第二步;否則,輸出全部余數(shù)r排列得到的k進制數(shù).

    程序框圖如下圖:

程序:

INPUT “a,k=”;a,k

b=0

i=0

DO

  q=a\\k

  r=a MOD k

  b=b+r*10^i

  i=i+1

  a=q

LOOP UNTIL q=0

PRINT b

END

練習(xí)冊系列答案
相關(guān)習(xí)題

同步練習(xí)冊答案