好文档 - 专业文书写作范文服务资料分享网站

c经典100例【python实现】修正版2010年11月

天下 分享 时间: 加入收藏 我要投稿 点赞

stdout.write(str(i)) stdout.write(\ n = n / i else: break print \'''

我的程序: import sys import math def IsPrim(n): if n==2:

return True

m = int(math.sqrt(n)) for e in range(3,m+1): if n%e == 0: return False return True

def Find(n,lt): if(n > 1):

for e in range(2,n+1): if n > 1:

if IsPrim(e): if n%e == 0: lt.append(e) n = n/e if(n > 1):

lt = Find(n,lt) lt.sort() return lt

if __name__ == '__main__': for n in range(10,100): lt = []

print n,Find(n,lt) 示例可以修改为:

from sys import stdout

n = int(raw_input(\print \

for i in range(2,n + 1): while n != 1:

if n % i == 0:

stdout.write(str(i))

stdout.write(\ n = n / i else: break

【程序15】

题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60- 89分之间的用B表示,

60分以下的用C表示。

1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 2.程序源代码: 不支持这个运算符 '''

score = int(raw_input('input score:\\n')) if score >= 90: grade = 'A' elif score >= 60: grade = 'B' else:

grade = 'C'

print '%d belongs to %s' % (score,grade) '''

【程序17】

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用while语句,条件为输入的字符不为'\\n'. 2.程序源代码: '''

import string

s = raw_input('input a string:\\n') letters = 0 space = 0 digit = 0 others = 0 for c in s:

if c.isalpha(): letters += 1 elif c.isspace():

space += 1 elif c.isdigit(): digit += 1 else:

others += 1

print 'char = %d,space = %d,digit = %d,others = %d' % (letters,space,digit,others) '''

[程序18]

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如 2+22+222+2222+22222(此时

共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 2.程序源代码: ''' Tn = 0 Sn = []

n = int(raw_input('n = :\\n')) a = int(raw_input('a = :\\n')) for count in range(n): Tn = Tn + a a = a * 10 Sn.append(Tn) print Tn

Sn = reduce(lambda x,y : x + y,Sn) print Sn '''

我的程序: import sys Tn = 0

n = int(raw_input('n = ')) a = int(raw_input('a = ')) for count in range(1,n+1): Tn *= 10

Tn += a*count

for x in range(count):

sys.stdout.write('%d' % a) print '' print Tn

【程序19】

题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 找出1000以内的所有完数。

1. 程序分析:请参照程序<--上页程序14. 2.程序源代码: '''

from sys import stdout for j in range(2,1001): k = [] n = -1 s = j

for i in range(1,j): if j % i == 0: n += 1 s -= i

k.append(i)

if s == 0: print j

for i in range(n): stdout.write(k[i]) stdout.write(' ') print k[n] '''

【程序20】

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 1.程序分析:见下面注释 2.程序源代码: '''

Sn = 100.0 Hn = Sn / 2

for n in range(2,11): Sn += 2 * Hn Hn /= 2

print 'Total of road is %f' % Sn

print 'The tenth is %f meter' % Hn

'''

【程序21】

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一 个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天 剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了 多少。

1.程序分析:采取逆向思维的方法,从后往前推断。 2.程序源代码: ''' x2 = 1

for day in range(9,0,-1): x1 = (x2 + 1) * 2 x2 = x1 print x1 '''

【程序22】

题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签 决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程 序找出三队赛手的名单。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 2.程序源代码: '''

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】

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

c经典100例【python实现】修正版2010年11月

stdout.write(str(i))stdout.write(\n=n/ielse:breakprint\'''我的程序:importsysimportmathdefIsPrim(n):ifn==2:<
推荐度:
点击下载文档文档为doc格式
1tqzo1agso565jb3urou8mpoj7oc3w00zmp
领取福利

微信扫码领取福利

微信扫码分享