这些本是C语言100例中的练习,无奈VC++的环境实在一头雾水,连编译都得出错,更别说运行了。所以继续昨天的python。

先来看这道:

【程序20】
 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

怡情的小题,来回顾一下代码:


#!/usr/bin/env python
# -*- coding: cp936 -*-
print'''题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
   第10次落地时,共经过多少米?第10次反弹多高?
'''

raw_input("     按任意键继续     \n")
raw_input("     *想让我帮你算吗?按Enter开始*     \n")
n = int(raw_input("     **打算反弹几次?把数字输下面**     \n"))
d = 0.0
#第n次落下反弹高度
print "第n次落下反弹高度:%s"%(100*1/2.0**n)

#第n次落地时共经过多少米
for i in range(n):
    d += 100*1/2.0**i
print "第n次落地时共经过多少米:%s\n"%d
#按Enter继续
raw_input("按任意键退出")






就把里面零碎的知识点展开说一下吧:

三个引号中的内容可以跨行打印出来,而且保持原样。

除法有”/“和”//“两种:后一种只做整除,小数一概舍掉;前一种根据数据类型而定,都是int时跟第二种一样,有float时保留小数。

”**“这样两个星号是幂运算,第一次见。

大概就这么多。不过有一点体会不得不说,那就是写注释!

不仅有助于别人理解你的代码,也让你自己在写的时候思路更加清晰。刚开写第一道题的时候,简直要疯掉,几行代码写了一个小时,写着后面的忘着前面的,而且调试语法错误时还会忘掉要调试的这句是干嘛的!

简直受不鸟!!

好了,继续下一题。

【程序18】

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

关键是计算出每一项的值,其余就很好处理了(可是天生有手残的缺陷啊

,语法错,类型不对,值无效,bug满天飞有木有啊

,可代码就那么几行有木有啊!


受不鸟我自己。

上菜:


#!/usr/bin/env python
# -*- coding: cp936 -*-
#输入用来叠加的数字
a = int(raw_input("输入用来叠加的数字"))
#输入数字控制叠加次数
x = int(raw_input("输入叠加次数"))
#定义一个函数来求第n次叠加时需加上的数值
def dj(x="",y=""):
    s = 0
    for i in range(1,y+1):
        s += x * 10 ** (i-1)
    return s
#计算叠加结果,将过程一并打印输出
s = a
print s,
for i in range(2,1+x):
    s += dj(a,i)
    print "+%s"%(dj(a,i)),
print "=%s"%s    
#按Enter继续
raw_input("press Enter")



这个不想多说。不过另外有3道题值得一提。要计算最大公约数!!我竟然没做!!就跟当年考试市有道二进制转十六进制我也没做一样,尼玛完全不会!

这你敢信!