早教吧 育儿知识 作业答案 考试题库 百科 知识分享

设计一个算法,把k进制数a(共有n位)化为十进制数b.

题目详情
设计一个算法,把k进制数a(共有n位)化为十进制数b.

▼优质解答
答案和解析

算法分析:从例1的计算过程可以看出,计算k进制数a的右数第i位数字ai与ki-1的乘积ai·ki-1,再将其累加,这是一个重复操作的步骤.所以,可以用循环结构来构造算法.

    算法步骤如下:

第一步,输入a,k和n的值.

第二步,将b的值初始化为0,i的值初始化为1.

第三步,b=b+ai·ki-1,i=i+1.

第四步,判断i>n是否成立.若是,则执行第五步;否则,返回第三步.

第五步,输出b的值.

程序框图如下图:

程序:

INPUT “a k,n=”;a,k,n

b=0

i=1

t=a MOD 10

DO

  b=b+t*k^(i-1)

  a=a\\10

  t=a MOD 10

  i=i+1

LOOP UNTIL i>n

PRINT b

END