question
- 题目:[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次,……依次类推。输出统计结果。 - 题目:[Python,多重循环,输出格式,数据类型选择]水仙花数
题目描述:
输出所有的"水仙花数"。所谓"水仙花数"是指这样的一个三位数:其各位数字的立方和等于该数本身。例如:371是一个"水仙花数",371=33+73+13。输出所有的水仙花数,每行一个(注意输出格式!) - 题目:[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 - 题目:[Python, 循环] 百钱买百鸡问题
题目描述:
中国古代数学著作《算经》中提出一个问题:公鸡每只5钱,母鸡每只3钱,小鸡1钱3只。若用100钱买100只鸡(每种鸡必须都买到),输出所有的买法,要求输出结果形式如“rooster=公鸡只数,hen=母鸡只数,chick=小鸡只数”,并且按公鸡只数由小到大的顺序输出,有多组解时分行输出。
[输出样例]
rooster=1,hen=2,chick=3
rooster=2,hen=3,chick=4 - 题目:[Python,递推法,循环]用递推法计算sinx
题目描述:
采用递推法计算sinx幂级数展开式的近似值,当通项绝对值小于10-8时停止累加,保留1位小数。
sinx=x/1-x3/3!+x5/5!-x7/7!…
[输入样例]
3.1415926
[输出样例]
0.0 - 题目:[Python, 循环, 算法] 凯撒密码
题目描述:
据说最早的密码来自于罗马的凯撒大帝,凯撒加密算法为对消息原文中的每个大写字母设置密钥N,即分别用该字母后的第N个字母替换,例如N为5,则消息原文中的字母A均替换为字母F,字母X替换为字母C,其他以此类推,非大写字母字符不变。输入加密消息(可能包含非大写字母),密钥为5,编程寻找消息原文并在屏幕上输出。
[输入样例]
IFSLJWTZX
[输出样例]
DANGEROUS - 题目:[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~~