编程语言入门经典100例【Python版】21-30

上一篇 / 下一篇  2015-01-22 10:32:02 / 个人分类:python100例

之后很多是练习c调用c的函数的,估计要跳过了~


# 【程序21

# 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个

#第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半

#零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

# 程序分析:采取逆向思维的方法,从后往前推断。

# 程序源代码:

 

s= 1

for j in range(1,10):   

    s = (s+1)*2

print s

su = s

 

# 【程序22

# 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定

#u 比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出

#u 三队赛手的名单。

# 程序分析: i,j,k 表示a,b,c的未知对手。三个for加前两个if

#       i j k 互不相同,第三个if表示a说他不和x比,c说他不和x,z比      

# 程序源代码:

for i in range(ord('x'),ord('z') + 1):

    for j in range(ord('x'),ord('z') + 1):

        if i != j:

            for k in range(ord('x'),ord('z') + 1):

                if (i != k) and (j != k):

                    if (i != ord('x')) and (k != ord('x')) and (k != ord('z')):

                        print 'order is a -- %s\t b -- %s\tc--%s' % (chr(i),chr(j),chr(k))

 

 

# 【程序23

# 题目:打印出如下图案(菱形)

# *

# ***

# ******

# ********

# ******

# ***

# *

# 程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重

#l for循环,第一层控制行,第二层控制列。

# 程序源代码:

 

for i in range(1,5):

    for j in range(0,i):

        print '*',

    print ''

for i in range(1,4):

    for j in range(0,4-i):

        print '*',

    print '' 

 

# 【程序24

# 题目:有一分数序列:2/13/25/38/513/821/13...求出这个数列的前20项之和。

# 程序分析:请抓住分子与分母的变化规律。

# 程序源代码:

 

fz = 2.0

fm = 1.0

s = 0

for i in range(1,21):#k = range(2,8)=[2, 3, 4, 5, 6, 7]

    fz = fm + fz 

    fm = fz - fm  #fz = fm+ fz前,则 fz = fz- fm

    s = s + fz/fm

print s

 

 

# 【程序25

# 题目:求1+2!+3!+...+20!的和

# 程序分析:此程序只是把累加变成了累乘。

# 程序源代码:

 

s =0

for i in range(1,21):  

    sn = 1

    for j in range(1,i+1):

        sn = sn*j

    s = s+sn

print s


#【程序26

#题目:利用递归方法求5!

#程序分析:递归公式:fn=fn_1*4!

#程序源代码:

def fa(num):

    if num <= 1:

       return 1

    else:

       return num*fa(num-1)

print fa(5)

 

#【程序27

#题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

#程序分析:

#程序源代码:

#明明可以用s.reverse()

s = raw_input('plz enter five char')     

def fa(num):

    if num <= 1:

        print s[0],

        return 1

    else:

        print s[num-1],

        return fa(num-1)

fa(len(s))

 

#【程序28

#题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,

#他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人

#大两岁。最后 问第一个人,他说是10岁。请问第五个人多大?

#程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,

#需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

#程序源代码:

# 应该还有其他的要s传递的方式,等以后了解更多了

def fa(num,s):

    if num <= 1:

        return s

    else:

        s = s+2

        return fa(num-1,s)

print  fa(5,10)

 

#【程序29

#题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

#程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)

#程序源代码:

 

s = list(raw_input('plz enter a number'))

print len(s)

s.reverse()

for i in range(0,len(s)):

    print int(s[i]),

 

#【程序30

#题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。   

#程序分析:同29

#程序源代码:

 

s = list(raw_input('plz enter a number'))

m = range(0,len(s))

for i in range(0,len(s)):#直接m = s的话,s逆序了,m会跟着变,只好一个个来赋值了

    m[i]=s[i]

s.reverse()

if(s == m):

    print 'ok'

else:

    print 'no'


TAG: Python python100 python

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-12  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 10422
  • 日志数: 4
  • 建立时间: 2014-10-29
  • 更新时间: 2015-01-22

RSS订阅

Open Toolbar