控制结构 习题解析及答案2

question

  1. 题目:[Python,循环,算法]统计字符个数
    题目描述:
    从键盘上输入一个字符串,计算每个字母(按字母表顺序,不区分大小写)出现的次数。例如字符串“I am a student.”的统计结果为:[2,0,0,1,1,0,0,0,1,0,0,0,1,1, 0,0,0,0,1,2,1,0,0,0,0,0]。表示字符’A’或’a’共出现了2次,字符’D’或’d’共出现了1次,……依次类推。输出统计结果。
  2. 题目:[Python,多重循环,输出格式,数据类型选择]水仙花数
    题目描述:
    输出所有的"水仙花数"。所谓"水仙花数"是指这样的一个三位数:其各位数字的立方和等于该数本身。例如:371是一个"水仙花数",371=33+73+13。输出所有的水仙花数,每行一个(注意输出格式!)
  3. 题目:[Python,算法]角谷猜想
    题目描述:
    角谷猜想:
    日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数则除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证任一正整数演算的过程,由键盘输入一个自然数。
    [输入样例]
    10
    [输出样例]
    10/2=5
    5*3+1=16
    16/2=8
    8/2=4
    4/2=2
    2/2=1
  4. 题目:[Python, 循环] 百钱买百鸡问题
    题目描述:
    中国古代数学著作《算经》中提出一个问题:公鸡每只5钱,母鸡每只3钱,小鸡1钱3只。若用100钱买100只鸡(每种鸡必须都买到),输出所有的买法,要求输出结果形式如“rooster=公鸡只数,hen=母鸡只数,chick=小鸡只数”,并且按公鸡只数由小到大的顺序输出,有多组解时分行输出。
    [输出样例]
    rooster=1,hen=2,chick=3
    rooster=2,hen=3,chick=4
  5. 题目:[Python,递推法,循环]用递推法计算sinx
    题目描述:
    采用递推法计算sinx幂级数展开式的近似值,当通项绝对值小于10-8时停止累加,保留1位小数。
    sinx=x/1-x3/3!+x5/5!-x7/7!…
    [输入样例]
    3.1415926
    [输出样例]
    0.0
  6. 题目:[Python, 循环, 算法] 凯撒密码
    题目描述:
    据说最早的密码来自于罗马的凯撒大帝,凯撒加密算法为对消息原文中的每个大写字母设置密钥N,即分别用该字母后的第N个字母替换,例如N为5,则消息原文中的字母A均替换为字母F,字母X替换为字母C,其他以此类推,非大写字母字符不变。输入加密消息(可能包含非大写字母),密钥为5,编程寻找消息原文并在屏幕上输出。
    [输入样例]
    IFSLJWTZX
    [输出样例]
    DANGEROUS
  7. 题目:[Python,循环]完数输出
    题目描述:
    一个数如果等于它的因子之和(包含1不包含自身)则称这个数为完数,例如6,6=1+2+3,编程计算2-n之内的所有完数并分行输出,n由键盘输入。
    [输入样例]
    100
    [输出样例]
    6
    28

answer

1.
s=input()
word=s.lower()#先转化为小写
lst=[]
for i in range(97,123):
    z=word.count(chr(i))#此处使用计数更加方便
    lst.append(z)
print(lst)
2.
for i in range(100,1000):
    b=i//100
    s=i//10%10
    g=i%10
    if b**3+s**3+g**3==i:
        print(i)
3.
x=int(input())
while x!=1:
    if x%2==0:
        print('{}/2={}'.format(x,x//2))
        x=x//2
    else:
        print('{}*3+1={}'.format(x,x*3+1))
        x=x*3+1
4.
for rooster in range(1,21):
    for hen in range(1,34):
        chick=(100-rooster*5-hen*3)*3
        if chick+rooster+hen==100 and 0<chick:
            print('rooster={},hen={},chick={}'.format(rooster,hen,chick))
5.
from math import fabs
n=1
x=eval(input())
sinx=term=x#此处需要再用一个term
while fabs(term)>=1e-8:
	term=-term*x*x/(n+1)/(n+2)
	sinx+=term#如果一直用sinx的话这里上一次的sinx将会被改变
	n+=2
print('{:.1f}'.format(sinx))
6.
x=input()
lst=[]
for word in x:
    if 70<=ord(word)<=90:
        word1=chr(ord(word)-5)
        lst.append(word1)
    elif 65<=ord(word)<=69:
        word2=chr(ord(word)+21)
        lst.append(word2)
    else:
        lst.append(word)
s=''.join(lst)
print(s)
7.
n=int(input())
for i in range(2,n):
    s=0	#放在此处,如果放在前面将会一直累加,导致瘫痪
    for j in range(1,i):
        if i%j==0:
            s+=j 
    if s==i:
        print(i)

over~~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值