Ruby学习之路——编程实践【2】 打印出1到n的所有对称数

本文介绍了一个简单的Ruby程序,用于找出1到指定数值n之间的所有对称数。对称数是指从左到右读和从右到左读都一样的整数。程序首先定义了几个辅助方法来确定数字的位数,并检查一个数是否为对称数,然后通过遍历1到n之间的每一个数并调用这些方法来打印所有的对称数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编程实现【2】 2012-06-04

打印出1到n的所有对称数

class FindOddNumber
  def getNumberCount(n)
    count = 1
    while n/10>=1
      n = n/10
      count += 1
    end
    return count
  end
  def getTheOne(number ,m)
    return number%10**m/10**(m-1)
  end
  
  def isTheNumber?(number)
    count = getNumberCount(number)
    small = 1
    big = count
    while small <= big
      if getTheOne(number,small) != getTheOne(number, big)
         return false 
      end
      small += 1
      big -= 1
    end
    return true
  end
  def printTheNumbers(n)
    for i in (1..n) 
      if isTheNumber?(i)
         print i," "
      end
    end
  end
  
end

f = FindOddNumber.new
print "Please input n = "
#n = $<.readline
n = gets
f.printTheNumbers(n.to_i)



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值