码迷,mamicode.com
首页 > 其他好文 > 详细

Epic - Desirable Number

时间:2015-06-14 12:18:02      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

A number is called ‘desirable‘ if all thedigits are strictly ascending eg: 159 as 1<5<9. You know that your rivalhas a strictly numeric password that is ‘desirable‘. Your close ally has givenyou the number of digits (N) in your rival‘s password. WAP th\hjtat takes in‘N‘ as input and prints out all possible ‘desirable‘ numbers that can be formedwith N digits.

递归:参数记录剩余需要生成的长度和最小的能append的数字

def bfs(remain,start,string)
  if remain == 0
    @ans << string
  else
    (start..9).each { |i| bfs(remain-1, i+1, string + i.to_s)}
  end
end

def desire_number(n)
  @ans = []
  bfs(n,1,‘‘)
  @ans
end

循环:用两个数组分别保存i-1的情况和i的情况 i from 1 to n

def desire_number(n)
 return 0 if n == 0 a
= [1] (n-1).times do b = [] a.each {|x| (x[-1].to_i..9).each{|y| b << x+y.to_s}} a = b end a end

Epic - Desirable Number

标签:

原文地址:http://www.cnblogs.com/lilixu/p/4574828.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!