使用递归将十进制转换为二进制的R程序


2023年2月5日, Learn eTutorial
3388

什么是十进制数和二进制数?

  • 十进制数:是以10为基数的数字,这意味着我们可以使用0到9的数字来表示该数字。
  • 二进制数:是以2为基数的数字,这意味着我们只有0和1来表示一个数字。

如何在R中使用递归将十进制数转换为二进制?

在这个R程序中,要将十进制数转换为二进制,接受用户输入需要转换为二进制的数字,并将该数字直接传递给函数convert_to_binary()。检查给定的十进制数是否大于1。转换为二进制是通过将该数连续除以2,并以相反的顺序打印余数,这将是该十进制数的二进制表示。

什么是递归?

递归是一个函数不断调用自身直到满足条件的过程。函数调用可以是直接的也可以是间接的。

算法

步骤1:调用函数convert_to_binary()

步骤2:将需要转换为二进制的十进制数作为decnum传递给该函数。

步骤3:在函数内部检查给定的数字是否大于1,如果是,则再次调用函数convert_to_binary(),并将decnum/2作为参数

步骤4:将数字decnum连续除以2并打印余数

R 源代码

                                          convert_to_binary <- function(decnum) {
if(decnum > 1) {
convert_to_binary(as.integer(decnum/2))
}
cat(decnum %% 2)
}
convert_to_binary(52)
                                      

输出

110100