算法分析:从例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
湖北省互联网违法和不良信息举报平台 | 网上有害信息举报专区 | 电信诈骗举报专区 | 涉历史虚无主义有害信息举报专区 | 涉企侵权举报专区
违法和不良信息举报电话:027-86699610 举报邮箱:58377363@163.com