博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python简单试题3
阅读量:7231 次
发布时间:2019-06-29

本文共 3350 字,大约阅读时间需要 11 分钟。

1,水仙花数

水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身

(例如:1^3 + 5^3+ 3^3 = 153)  代码如下:

方法一:for i in range(100,1000): # 进行for循环    num = i    a = num % 10 # 取出个位数    num = num // 10 # 向下整除    b = num % 10 # 取出十位数    num = num // 10    c = num % 10    num = num // 10    if a ** 3 + b ** 3 + c ** 3 == i: # 根据条件进行判断        print(i)方法二:def flower_number1(num):    length = len(str(num)) # 求出参数共有几位    count = length    sum = 0    while count: # 进行循环        sum += (num // 10 ** (count - 1) % 10) ** length      # 运算符幂的优先级比乘除高,下边式子与上边式子相同        # sum += (num // (10 ** (count - 1))% 10) ** length        count -= 1    if sum == num:        return True    else:        return False方法三:def flower_number2(num):    str1 = str(num) # 赋值生成一个新的字符串    count = len(str1) # 计算出字符串的长度    length = count    sum = 0    while count:        sum += int(str1[count-1]) ** length  # 取出字符串的第几位数,相当于num 的个位,十位,,在进行乘方运算        count -= 1    if sum == num:        return True    else:        return False

2,完美数

找出1~9999之间的所有完美数 完美数是除自身外其他所有因子的和正好等于这个数本身的数 例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14
import math # 导入数学模块for i in range(1,10000): # 循环    sum = 0    for j in range(1,int(math.sqrt(i)) + 1): # math.sqrt()为开平方。        # print(j)        if i % j == 0: # 判断是否为因数            sum = sum + j            if  j != 1 and i / j != j: # 因数为自身时不能加,因数两个相同时只能加一个                sum += i / j    if sum == i:        print(i)

3,百鸡百钱

1只公鸡5元 1只母鸡3元 3只小鸡1元 用100元买100只鸡 问公鸡 母鸡 小鸡各有多少只
for cock in range(21): # 公鸡最多有二十只    for hen in range(34): # 母鸡最多有三十三只        chick = 100 - cock - hen # 算出小鸡的数量        if cock * 5 + hen * 3 + chick / 3 == 100: # 买鸡共花费多少钱            print("公鸡:%d,母鸡:%d,小鸡:%d"%(cock,hen,chick))

4,斐波那锲数列

输出斐波那锲数列的前一百个数 0,1,1,2,3,f(n) = f(n-1) + f(n-2)
a = 1b = 0print(b) #输出第一个数for _ in range(99): # 进行九十九次循环    b,a = a,a+b  # 交换两数的顺序    print(a)

5,回文数

判断输入的正整数是不是回文数

回文数是指将一个正整数从左往右排列和从右往左排列值一样的数

num = input("请输入一个数字:") # 输入一个数字str1 = num # num为字符串形式length = len(str1) # 求出字符串的长度count = length // 2 # 向下整除法flag = True  # 设置一个标志位for i in range(count):    if str1[i] != str1[length-i-1]: # 进行判断是否相同        flag = False        breakif flag:    print("%d 是回文数"%num)else:    print("%d 不是回文数" % num)

6,Craps赌博游戏

玩家摇两颗色子 如果第一次摇出7点或11点 玩家胜 如果摇出2点 3点 12点 庄家胜 其他情况游戏继续 玩家再次要色子 如果摇出7点 庄家胜 如果摇出第一次摇的点数 玩家胜 否则游戏继续 玩家继续摇色子 玩家进入游戏时有1000元的赌注 全部输光游戏结束
from random import randint # 导入随机数模块money = 1000 # 你一共有1000元钱while money > 0: # 若有钱则可以继续玩    while True:        stake = int(input("请下注:"))        if stake > 0 and stake <= money: # 若输入不正确重新输入,直到正确为止            break    flag = False # 设置标志位,进行判断    dice1 = randint(1,6) + randint(1,6) # 进行摇骰子    print("玩家第一次摇出的点数是:%d"%dice1)    if dice1 == 2 or dice1 == 3 or dice1 == 12 :        print("庄家胜")        money -= stake # 庄家胜,玩家输钱        print("余额为:%d"%money)    elif dice1 == 7 or dice1 == 11:        print("玩家胜")        money += stake # 玩家胜,庄家赔钱        print("余额为:%d" % money)    else:        flag = True # 游戏继续,平局    while flag:        print("玩家再次摇色子")        dice2 = randint(1,6) + randint(1,6) # 再次摇色子        print("玩家第二次摇出的点数是:%d"%dice2)        if dice2 == dice1:            print("玩家胜")            money += stake            flag = False            print("余额为:%d" % money)        else:            print("游戏继续")            flag = False            print("余额为:%d" % money)print("你可以走了")

 

 

转载于:https://www.cnblogs.com/cong12586/p/10907690.html

你可能感兴趣的文章
Objective-C中的SEL、IMP和Class类型(转)
查看>>
20180814 基于51单片机的数码相机实验指导书编写,继续挖坑
查看>>
数据库中的T-sql语句 条件修改 高级查询
查看>>
win7开机密码忘记了
查看>>
阿里前端两年随想
查看>>
day28(ajax之js原生代码实现)
查看>>
用自定义属性attr或prop方法,遍历获取当前点击a的titleid
查看>>
安卓真机测试遇到的检测不到安卓设备的问题
查看>>
我的大学,我的梦
查看>>
洛谷训练P1008(循环+暴力)
查看>>
【挖坟】HDU3205 Factorization
查看>>
reentrantlock用于替代synchronized
查看>>
Android包管理机制(二)PackageInstaller安装APK
查看>>
测试aau代码
查看>>
jenkins相关默认路径
查看>>
条件编译#ifndef
查看>>
正则表达式
查看>>
slick对超过22个属性的表进行映射的两种办法
查看>>
hdu5731
查看>>
iOS 路径设置(转)
查看>>