精英家教网 > 高中数学 > 题目详情
设计一个程序,实现“除k取余法”.

算法分析:从例2的计算过程可以看出如下的规律:

    若十制数a除以k所得商是q0,余数是r0,即a=k·q0+r0,则r0是a的k进制数的右数第1位数.

    若q0除以k所得的商是q1,余数是r1,即q0=k·q1+r1,则r1是a的k进制数的左数第2位数.

    ……

    若qn-1除以k所得的商是0,余数是rn,即qn-1=rn,则rn是a的k进制数的左数第1位数.

    这样,我们可以得到算法步骤如下:

    第一步,给定十进制正整数a和转化后的数的基数k.

    第二步,求出a除以k所得的商q,余数r.

    第三步,把得到的余数依次从右到左排列.

    第四步,若q≠0,则a=q,返回第二步;否则,输出全部余数r排列得到的k进制数.

    程序框图如下图:

程序:

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

练习册系列答案
相关习题

同步练习册答案