Ruby没有为您提供任何预定义的直接方法,通过该方法可以找到数字中的位数。尽管可以通过将数字转换为字符串然后对它应用.length方法来实现一种方法。在这种情况下,表达式将看起来像“ number.to_s.length”,但这需要将数字转换为字符串。如果您不想应用此类方法,则可以使用下面给出的代码。
使用的方法:
puts:此方法是预定义的方法,用于在控制台上打印字符串。
gets:gets方法用于通过控制台从用户获取字符串。
使用的变量:
num:此变量存储用户提供的数字。
temp:用作临时变量,以num形式存储可用值。
count:这是一个计数器变量。它存储以num为单位的可用位数。
=begin Ruby program to count the number of digits =end puts "Enter the number:" num=gets.chomp.to_i temp=num count=0 while (temp>0) count+=1 temp=temp/10 end puts "#{num} has #{count} digits"
输出结果
RUN 1: Enter the number 89744 89744 has 5 digits RUN 2: Enter the number 8171627331 8171627331 has 10 digits
代码说明:
您可以在上面的代码中观察到我们已经进行了可变计数,即作为计数器并计数位数。计数由0初始化,并在使用while循环提及的条件成立时递增。每次迭代后,该数字除以10。代码并不复杂,很容易理解。