day5-作业

基础

读程序,总结程序的功能:

numbers = 1
for i in range(0,20):
 numbers * = 2
print(numbers)

执行数字2的20次方

summation = 0
num = 1
while num <= 100:
    if (num % 3 == 0 or num % 7 == 0) and num % 21 != 0:
         summation += 1
    num += 1
print(summation)

统计数字(1~100)中,能被3整除或者被7整除,但不能同时被3和7整除的数的个数。

编程实现(for和while各写一遍):

  1. 求1到100之间所有数的和、平均值
    for:
sum1 = 0
for num in range(1,101):
    sum1 += num
print('1~100的和:%d' % sum1)
average = sum1 / 100
print('1~100的平均值:%d' % average)

1~100的和:5050
1~100的平均值:50

while:

num = 1
sum1 = 0
while num <= 100:
    sum1 += num
    num += 1
print('1~100的和:%d' % sum1)
average = sum1 / 100
print('1~100的平均值:%d' % average)

1~100的和:5050
1~100的平均值:50

  1. 计算1-100之间能3整除的数的和
    for:
sum1 = 0
for num in range(1,101):
    if num % 3 == 0:
        sum1 += num
print('被3整除的数的和:%d' % sum1)

被3整除的数的和:1683

while:

sum2 = 0
num1 = 1
while num1 <= 100:
    if num1 % 3 == 0:
        sum2 += num1
    num1 += 1
print('被3整除的数的和:%d' % sum2)

被3整除的数的和:1683

  1. 计算1-100之间不能被7整除的数的和
    for:
sum1 = 0
for num in range(1,101):
    if num % 7 == 0:
        continue
    sum1 += num
print('不能被7整除的数的和:%d' % sum1)

不能被7整除的数的和:4315

while:

sum2 = 0
num1 = 1
while num1 <= 100:
    if num1 % 7 != 0:
        sum2 += num1
    num1 += 1
print('不能被7整除的数的和:%d' % sum2)

不能被7整除的数的和:4315


稍微困难

  1. 求斐波那契数列中第n个数的值:1,1,2,3,5,8,13,21,34....
f1 = 1
f2 = 1
fn = 0
n = int(input("请输入斐波那契数列第n个数:"))
for n in range(1, n + 1):
    if n == 1:
        f1 = 1
    elif n == 2:
        f2 = 1
    else:
        fn = f1 + f2
        f1 = f2
        f2 = fn
print("第%d个斐波那契数列的值:%d" % (n, fn))

例:请输入斐波那契数列第n个数:15
第15个斐波那契数列的值:610

  1. 判断101-200之间有多少个素数,并输出所有素数。判断素数的方法:用一个数分别除2到sqrt(这个
    数),如果能被整除,则表明此数不是素数,反之是素数
count = 0
for num1 in range(101,201,2):
    for num2 in range(2,num1) :
        if num1 % num2 == 0:
            break
    else:
        count += 1
        print(num1)
print("素数的个数:%d" % count)

101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
素数的个数:21

  1. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是
    一个水仙花数,因为153 = 1^3 + 5^3 + 3^3
print("所有水仙花数:" )
for num1 in range(100,1000):
    bw = num1 // 100
    sw = num1 // 10 % 10
    gw = num1 % 10
    if num1 == bw ** 3 + sw ** 3 + gw ** 3:
        print(num1)

所有水仙花数:
153
370
371
407

  1. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数
    分子:上一个分数的分子加分母
    分母: 上一个分数的分子 fz = 2 fm = 1 fz+fm / fz
import fractions
fz = 2
fm = 1
n = int(input("请输入第n个分数序列:"))
for n in range(1,n+1):
    if n == 1:
        num1 = fractions.Fraction(fz, fm)
    else:
        fz = fz + fm
        fm = fz - fm
        num1 = fractions.Fraction(fz, fm)
print(num1)

请输入第n个分数序列:20
第20个分数值: 17711/10946

  1. 给一个正整数,要求:1、求它是几位数 2.逆序打印出各位数字
num1 = input("请输入一个正整数:")
str1 = str(num1)
print("这个整数是%d位数" % len(str1))
print("逆序打印:")
for index in range(0,len(str1)):
    print(str1[len(str1)-1-index])

例:请输入一个正整数:256578745
这个整数是9位数
逆序打印:
5
4
7
8
7
5
6
5
2


提高

1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)

age = int(input("请输入年龄:"))
if age < 12:
    print("儿童")
elif age < 18:
    print("未成年")
elif age < 30:
    print("成年人")
elif age < 50:
    print("青壮年")
elif age > 50:
    print("老年人")

例:
请输入年龄:23
成年人

2.计算5的阶乘 5!的结果是

sum1 = 1
for num1 in range(1,6):
    sum1 *= num1
print("5的阶乘5!的结果是:%d" % sum1)

5的阶乘5!的结果是:120

3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。

sum1 = 1
sum2 = 0
for num1 in range(1,21):
    for num2 in range(1,num1+1):
        sum1 *= num2
    sum2 += sum1
    sum1 = 1
print("1+2!+3!+...+20!的结果是:%d" % sum2)

1+2!+3!+...+20!的结果是:2561327494111820313

4.计算 1+1/2!+1/3!+1/4!+...1/20!=?

import fractions
sum1 = 1
sum2 = 0
num3 = 0
for num1 in range(1, 21):
    for num2 in range(1,num1+1):
        sum1 *= num2
        num3 = fractions.Fraction(1, sum1)
    sum2 += num3
    sum1 = 1
print("1+1/2!+1/3!+1/4!...+1/20!的结果是:%.2f" % sum2)

1+1/2!+1/3!+1/4!...+1/20!的结果是:1.72

5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。

value = int(input("请输入:"))
sum1 = value
while value != 0:
    value = int(input("请输入:"))
    sum1 += value
print("输入数字的和:%d" % sum1)

例:请输入:3
请输入:6
请输入:7
请输入:4
请输入:2
请输入:5
请输入:9
请输入:1
请输入:0
输入数字的和:37

6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。

a = int(input("请输入一个数字:"))
b = int(input("请输入相加个数:"))
sum1 = 1
s = 0
for num1 in range(1, b+1):
    for num in range(1, num1+1):
        sum1 = a * 10 ** (num-1)
        s += sum1
print("所有数值之和:%d" % s)

例:请输入一个数字:2
请输入相加个数:5
所有数值之和:24690

7.输入三个整数x,y,z,请把这三个数由小到大输出。

x = int(input("请输入:x="))
y = int(input("请输入:y="))
z = int(input("请输入:z="))
num1 = max(x, y, z)
num2 = min(x, y, z)
num3 = x + y + z - num1 - num2
print(num2, num3, num1)

请输入:x=2
请输入:y=4
请输入:z=3
2 3 4

8.控制台输出三角形

a.根据n的值的不同,输出相应的形状
n = 5时                n = 4
*****                  ****
****                   ***
***                    **
**                     *
*
str1 = '*'
n = int(input("n="))
str2 = str1 * n
for i in range(n):
    print(str2[:n])
    n -= 1

例:
n=5
*****
****
***
**
*

b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5               n = 7
  *                    *
 ***                  ***
*****                *****
                    *******
str1 = '*'
n = int(input("请输入一个奇数:n="))
for i in range((n+1) // 2):
    str2 = str1.center(n, ' ')
    print(str2)
    str1 += '*'
    str1 += '*'
例:
n=7
   *  
  *** 
 *****
*******

9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

for i in range(1, 10):
    for j in range(1, i+1):
        num1 = i * j
        print("%d * %d = %d" % (j, i, num1), '\t', end='')
        if i == j:
            print('')
1 * 1 = 1   
1 * 2 = 2   2 * 2 = 4   
1 * 3 = 3   2 * 3 = 6    3 * 3 = 9  
1 * 4 = 4   2 * 4 = 8    3 * 4 = 12   4 * 4 = 16    
1 * 5 = 5   2 * 5 = 10   3 * 5 = 15   4 * 5 = 20   5 * 5 = 25   
1 * 6 = 6   2 * 6 = 12   3 * 6 = 18   4 * 6 = 24   5 * 6 = 30   6 * 6 = 36  
1 * 7 = 7   2 * 7 = 14   3 * 7 = 21   4 * 7 = 28   5 * 7 = 35   6 * 7 = 42   7 * 7 = 49     
1 * 8 = 8   2 * 8 = 16   3 * 8 = 24   4 * 8 = 32   5 * 8 = 40   6 * 8 = 48   7 * 8 = 56   8 * 8 = 64    
1 * 9 = 9   2 * 9 = 18   3 * 9 = 27   4 * 9 = 36   5 * 9 = 45   6 * 9 = 54   7 * 9 = 63   8 * 9 = 72   9 * 9 = 81

10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?

print("大马、中马、小马匹数有如下情况:")
for dm in range(1, 99):
    for zm in range(1, 99):
        for xm in range(1, 99):
            if dm + zm + xm == 100 and 3 * dm + 2 * zm + 0.5 * xm == 100:
                print(dm, zm, xm)

大马、中马、小马匹数有如下情况:
2 30 68
5 25 70
8 20 72
11 15 74
14 10 76
17 5 78

11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。

print("公鸡、母鸡、雏鸡个数有如下情况:")
for gj in range(1, 99):
    for mj in range(1, 99):
        for cj in range(1, 99):
            if gj + mj + cj == 100 and 5 * gj + 3 * mj + 1/3 * cj == 100:
                print(gj, mj, cj)

公鸡、母鸡、雏鸡个数有如下情况:
4 18 78
8 11 81
12 4 84

12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?

print("购买方式有如下情况:")
for xfs in range(0, 7):
    for xz in range(0, 51):
        for ys in range(0, 21):
            if 15 * xfs + 2 * xz + 5 * ys == 100:
                print("洗发水%d瓶,香皂%d块,牙刷%d支" % (xfs, xz, ys))

购买方式有如下情况:
洗发水0瓶,香皂0块,牙刷20支
洗发水0瓶,香皂5块,牙刷18支
洗发水0瓶,香皂10块,牙刷16支
洗发水0瓶,香皂15块,牙刷14支
洗发水0瓶,香皂20块,牙刷12支
洗发水0瓶,香皂25块,牙刷10支
洗发水0瓶,香皂30块,牙刷8支
洗发水0瓶,香皂35块,牙刷6支
洗发水0瓶,香皂40块,牙刷4支
洗发水0瓶,香皂45块,牙刷2支
洗发水0瓶,香皂50块,牙刷0支
洗发水1瓶,香皂0块,牙刷17支
洗发水1瓶,香皂5块,牙刷15支
洗发水1瓶,香皂10块,牙刷13支
洗发水1瓶,香皂15块,牙刷11支
洗发水1瓶,香皂20块,牙刷9支
洗发水1瓶,香皂25块,牙刷7支
洗发水1瓶,香皂30块,牙刷5支
洗发水1瓶,香皂35块,牙刷3支
洗发水1瓶,香皂40块,牙刷1支
洗发水2瓶,香皂0块,牙刷14支
洗发水2瓶,香皂5块,牙刷12支
洗发水2瓶,香皂10块,牙刷10支
洗发水2瓶,香皂15块,牙刷8支
洗发水2瓶,香皂20块,牙刷6支
洗发水2瓶,香皂25块,牙刷4支
洗发水2瓶,香皂30块,牙刷2支
洗发水2瓶,香皂35块,牙刷0支
洗发水3瓶,香皂0块,牙刷11支
洗发水3瓶,香皂5块,牙刷9支
洗发水3瓶,香皂10块,牙刷7支
洗发水3瓶,香皂15块,牙刷5支
洗发水3瓶,香皂20块,牙刷3支
洗发水3瓶,香皂25块,牙刷1支
洗发水4瓶,香皂0块,牙刷8支
洗发水4瓶,香皂5块,牙刷6支
洗发水4瓶,香皂10块,牙刷4支
洗发水4瓶,香皂15块,牙刷2支
洗发水4瓶,香皂20块,牙刷0支
洗发水5瓶,香皂0块,牙刷5支
洗发水5瓶,香皂5块,牙刷3支
洗发水5瓶,香皂10块,牙刷1支
洗发水6瓶,香皂0块,牙刷2支
洗发水6瓶,香皂5块,牙刷0支

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,639评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,277评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,221评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,474评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,570评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,816评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,957评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,718评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,176评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,511评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,646评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,322评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,934评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,755评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,987评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,358评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,514评论 2 348

推荐阅读更多精彩内容

  • 一、基础 1、读程序,总结程序的功能: 答案:分解程序:功能:2的20次方。 2、读程序,总结程序的功能: 答案:...
    遇见那天的雨真大阅读 413评论 0 0
  • 8月22日-----字符串相关 2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消...
    future_d180阅读 963评论 0 1
  • 作业 功能:求2的20次方 求1-100数据中, 能被3或者7整除的数而且这个数不能被21整除,然后求结果总和 编...
    312d026ea2dd阅读 1,047评论 0 0
  • 基础 读程序,总结程序的功能: 总结 :程序循环20次 每次numbers=2 结果为2*20 = 1...
    诗妮SONY阅读 196评论 0 0
  • [题目] Spring中定义bean的作用域时,使用singleton和prototype有何区别? [正确答案]...
    博为峰51Code教研组阅读 400评论 0 1