用python试着处理C语音中的经典问题
Q1:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方;A:
print("---------水仙花数-------------")
for i in range(100,999):
a = i%10
b = (i//10)%10
c = i//100
if i == a**3 + b**3 + c**3:
print(i) Q2:最大数问题:从键盘上任意输入10个整数,求出其中的最大数
A:
print('-------------求输入的10数的最大数-----------------')
n = 1
list1 = []
while n < 11:
temp =input('请输入第'+str(n)+'个数字:')
list1.append(temp)
n += 1
print('您输入的10个数是:')
print(list1)
max =list1
m = 1
for m in range(1,10):
if max < list1:
max = list1
print('您输入的10个数,最大的是:',max) Q3:求出以“9999”作为结束标志的一组整数的最大数。例如输入:123 45 567834999967 23456,输出结果为5678,即对9999及其以后的数不作处理
A:
print('-------求以9999作为结束标志的一组整数最大数---------')
list1 = ['123','45','5678','34','9999','67','23456']
max = list1
print(list1)
m = 1
for m in range(1,list1.index('9999')):
if max < list1:
max = list1
print('9999以前最大的数是:',max)
Q4:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
A:这题理解不了,我理解的与标准答案有很大差别 Q5:问题描述:5位跳水高手参加10米高台跳水决赛,有好事者让5人据实力预测比赛结果.
A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一.
决赛成绩公布之后,每位选手的预测都只说对了一半,即一对一错.请编程解出比赛的实际名次.
A:
print('--------排名-----------')
for A in range(1,6):
for B in range(1,6):
for C in range(1,6):
for D in range(1,6):
for E in range(1,6):
a = (B==2) and (A!=3) or (B!=2) and (A==3)
b = (B==2) and (E!=4) or (B!=2) and (E==4)
c = (C==1) and (D!=2) or (C!=1) and (D==2)
d = (C==5) and (D!=3) or (C!=5) and (D==3)
e = (E==4) and (A!=1) or (E!=4) and (A==1)
if a+b+c+d+e ==5 and A!=B and A!=C and A!=D and A!=E and B!=C and B!=D and B!=E and C!=D and C!=E and D!=E:
print(A,B,C,D,E)
Q:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
A:
print('------------求参数顺序---------------')
for a in range(1,4):
for b in range(1,4):
for c in range(1,4):
for x in range(1,4):
for y in range(1,4):
for z in range(1,4):
if a!=x and c!=x and c!=z and a!=b and a!=c and b!=c and x!=y and x!=z and y!=z:
print('abc和xyz的参赛顺序分别是:',end='')
print(a,b,c,x,y,z)
存在的问题是,不能按照顺序将abc和xyz打印出来,这个点求帮助 Q6:输入两个正整数m和n,求其最大公约数和最小公倍数
A:
print('--------求最大公约数和最小公倍数---------')
m = int(input('请输入第一个正整数:'))
n = int(input('请输入第二个正整数:'))
for i in range(int(min(m,n)),0,-1):
if m%i==0 and n%i==0:
print('最大公约数是:',end='')
print(i)
break
for o in range(int(min(m,n)),m*n+1):
if o%m == 0 and o%n == 0:
print('最大公约数是:',end='')
print(o)
break
Q7:从键盘上任意输入一个十进制整数,判断该数是否是一个素数。若是,则输出“该数是素数”;否则输出“该项数不是素数”。
A:
print('----------判断一个数是否是素数---------------')
import math
num = int(input('请输入一个正整数:'))
for i in range(2,int(math.sqrt(num))+1):
if num%i == 0:
print('这个数不是素数')
break
else:
print('这个数是素数')
剩下的问题,print('这个数是素数'),这句话会执行很多句,怎么才能只执行一句? Q8:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换
A:
list1 = []
list2 = []
list1.extend(input('请输入一个4位数:'))
for i in range(4):
ni = int(list1)
ni += 5
ni %= 10
list2.append(int(ni))
print(list2[::-1]) Q9:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
A:
import math
for i in range(100000):
if i+100 == int(math.sqrt(i+100))**2 and i+268 == int(math.sqrt(i+268))**2:
print(i) 漫步是一种心情 发表于 2016-5-22 10:06
Q4:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子 ...
细思极恐哈哈哈哈
.....
页:
[1]