在hackerrank上面看到一个蛮好玩的题目: https://www.hackerrank.com/contests/pythonist/challenges/python-quest-1
想了半天没有什么好办法,最后用了一个比较“猥琐”的解法:
for i in range(1,input()): print [1,22,333,4444,55555,666666,7777777,88888888,999999999][i-1]
题目的限制比较多:
1. 只能两行代码,且第一行已经写好了
2. 只能用一个循环
3. 不能用string相关的操作
有人有其他有趣的解法么?
![]() | 1 FastMem 2015-05-11 16:30:13 +08:00 研究了 半天也不知道PHP怎么两行。。 |
![]() | 2 pathletboy 2015-05-11 16:32:49 +08:00 ```python for i in range(1,input()): print(("%d"%(i))*i) ``` 这个合格? |
3 phx13ye nbsp; 2015-05-11 16:33:22 +08:00 print i * str(i) 为什么我零分啊 |
![]() | 4 hahastudio 2015-05-11 16:42:28 +08:00 ![]() 这个简单啊,这根本就不是编程题,这个是数学题,求数列通项 print i * (10 ** i - 1) / 9 我觉得我能解出来是因为我太年轻。。。 |
![]() | 5 wartime 2015-05-11 16:42:50 +08:00 ![]() print reduce(lambda x, y: x * 10 + y, [i] * i) |
![]() | 6 nlimpid 2015-05-11 16:45:38 +08:00 print int('1'*i)*i |
![]() | 8 oott123 2015-05-11 16:47:04 +08:00 ![]() print("▲") |
![]() | 9 staticor 2015-05-11 16:55:05 +08:00 同5楼, 楼主做几套公务员行测数量的几个数列题目就知道思路了 |
10 batman2010 2015-05-11 16:55:09 +08:00 foreach my $i (1..9) { print $i x $i, "\n"; } |
![]() | 11 mulog 2015-05-11 16:55:21 +08:00 |
![]() | 12 dingyaguang117 2015-05-11 16:59:10 +08:00 ``` for i in xrange(1,10): print str(i)*i ``` |
![]() | 14 aec4d 2015-05-11 17:12:55 +08:00 用近似欺骗的手段通过了Orz what = lambda x: 1 if x == 1 else pow(10, x-1) + what(x - 1);print(what(i)*i) |
16 feiyuanqiu 2015-05-11 17:29:37 +08:00 这个题有个问题,当 N >= 10 之后,应该怎么显示呢? 是显示 10 个 10 ?(这样就不是三角形了,这一行有 20 个字符) 或者其他样式显示?(这样整个规则跟前面的就不一致了) 不考虑 N >= 10 的 php 代码: 用字符串: for ($i=1; $i <= $_GET['N']; $i++) printf("%s<br>", str_repeat($i, $i)); 不用字符串: for ($i=1, $base = 1; $i <= $_GET['N']; $base+=pow(10, $i), $i++) printf("%s<br>", $i*$base); |
![]() | 17 zonghua 2015-05-11 17:30:31 +08:00 via iPhone 我发现我智商不够 |
![]() | 18 fangjinmin 2015-05-11 17:40:49 +08:00 print str(i) * i |
19 zealot0630 2015-05-11 17:53:14 +08:00 print i * sum([10**j for j in range(0, i)]) 不懂为什么fail |
![]() | 20 shuson 2015-05-11 17:55:42 +08:00 给我用单循环两行代码画个三角形 我给你钱 |
![]() | 21 xjx0524 2015-05-11 18:01:27 +08:00 @feiyuanqiu 1≤N≤9 |
![]() | 22 ykshen 2015-05-12 02:18:31 +08:00 for i in range(1,input()): print i * (10 ** i) / 9 |