正剧开始:
星历2016年02月10日 14:07:19, 银河系厄尔斯星球中华帝国江南行省。
[工程师阿伟]正在和[机器小伟]一起研究[数学广角──植树问题]。
[工程师阿伟]刚看到这层功法的时候,并没有发现什么,但看了[人叫板老师]画的图以后,突然有了点想法。
因为这其实就是求一个序列中元素的个数,可以这样来求:
<span style="font-size:18px;">>>> len(range(1, 100, 5)); 20 >>> len(range(1, 101, 5)); 20 >>> len(range(0, 101, 5)); 21</span>
<span style="font-size:18px;">>>> 0米要栽1棵树。 5米要栽2棵树。 10米要栽3棵树。 15米要栽4棵树。 20米要栽5棵树。 25米要栽6棵树。 30米要栽7棵树。 35米要栽8棵树。 40米要栽9棵树。 45米要栽10棵树。 50米要栽11棵树。 55米要栽12棵树。 60米要栽13棵树。 65米要栽14棵树。 70米要栽15棵树。 75米要栽16棵树。 80米要栽17棵树。 85米要栽18棵树。 90米要栽19棵树。 95米要栽20棵树。 100米要栽21棵树。 def tmp(): for i in range(0, 101, 5): print('{0}米要栽{1}棵树。'.format(i, len(range(0, i+1, 5)))); return;</span>
如果两端都栽,需要:
<span style="font-size:18px;">#植树问题 def plantTree(distance, spacing, isCircle): if (not isCircle): d = distance + 1; print('{0}米要栽{1}棵树。'.format(distance, len(range(0, d, spacing)))); return; if __name__ == '__main__': plantTree(60, 3, False);</span>
<span style="font-size:18px;">>>> 总量:120, 步长:10,需要单元:12。 #植树问题 def plantTree(distance, spacing, isCircle): d = distance; if (not isCircle): d += 1; print('总量:{0}, 步长:{1},需要单元:{2}。'.format(distance, spacing, len(range(0, d, spacing)))); return;</span>
<span style="font-size:18px;">>>> 0 --> 2 1 --> 6 2 --> 10 3 --> 14 4 --> 18 5 --> 22 6 --> 26 7 --> 30 8 --> 34 9 --> 38 10 --> 42 def tmp(): for i in range(11): print(i, '--> ', 2+4*i);</span>
<span style="font-size:18px;">>>> 1 --> 0 --> 1 3 --> 8 --> 9 5 --> 16 --> 25 7 --> 24 --> 49 9 --> 32 --> 81 11 --> 40 --> 121 13 --> 48 --> 169 15 --> 56 --> 225 def tmp(): total = 0; for i in range(1, 16, 2): if (i == 1): total += 1; else: total += 4*i-4; print(i, '-->', 4*i-4, '--> ', total);</span>