鱼C论坛

 找回密码
 立即注册
查看: 5983|回复: 11

[萌新报道] 用python试着处理C语音中的经典问题

[复制链接]
发表于 2016-5-22 09:15:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-22 09:19:50 | 显示全部楼层
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[0]
m = 1
for m in range(1,10):
        if max < list1[m]:
                max = list1[m]
print('您输入的10个数,最大的是:',max)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-22 09:41:04 | 显示全部楼层
Q3:求出以“9999”作为结束标志的一组整数的最大数。例如输入:123 45 5678  34  9999  67 23456,输出结果为5678,即对9999及其以后的数不作处理
A:
print('-------求以9999作为结束标志的一组整数最大数---------')
list1 = ['123','45','5678','34','9999','67','23456']
max = list1[0]
print(list1)
m = 1
for m in range(1,list1.index('9999')):
    if max < list1[m]:
        max = list1[m]
print('9999以前最大的数是:',max)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-22 10:06:36 | 显示全部楼层
Q4:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
A:这题理解不了,我理解的与标准答案有很大差别
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-22 13:12:46 | 显示全部楼层
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)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-22 16:20:27 | 显示全部楼层
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打印出来,这个点求帮助
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-22 22:35:29 | 显示全部楼层
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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-22 22:50:22 | 显示全部楼层
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('这个数是素数'),这句话会执行很多句,怎么才能只执行一句?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-23 20:49:09 | 显示全部楼层
Q8:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换
A:
list1 = []
list2 = []
list1.extend(input('请输入一个4位数:'))
for i in range(4):
    ni = int(list1[i])
    ni += 5
    ni %= 10
    list2.append(int(ni))
print(list2[::-1])
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-23 20:54:02 | 显示全部楼层
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)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-30 03:56:14 | 显示全部楼层
漫步是一种心情 发表于 2016-5-22 10:06
Q4:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子 ...

细思极恐哈哈哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-11 21:17:06 | 显示全部楼层
.....
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 10:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表