前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python简单试题3

Python简单试题3

作者头像
py3study
发布2020-01-15 20:07:27
8260
发布2020-01-15 20:07:27
举报
文章被收录于专栏:python3python3

1,水仙花数

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

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

代码语言:javascript
复制
方法一:
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,完美数

代码语言:javascript
复制
找出1~9999之间的所有完美数
完美数是除自身外其他所有因子的和正好等于这个数本身的数
例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14
代码语言:javascript
复制
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,百鸡百钱

代码语言:javascript
复制
1只公鸡5元 1只母鸡3元 3只小鸡1元 用100元买100只鸡
问公鸡 母鸡 小鸡各有多少只
代码语言:javascript
复制
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,斐波那锲数列

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

5,回文数

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

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

代码语言:javascript
复制
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
        break
if flag:
    print("%d 是回文数"%num)
else:
    print("%d 不是回文数" % num)

6,Craps赌博游戏

代码语言:javascript
复制
玩家摇两颗色子 如果第一次摇出7点或11点 玩家胜
如果摇出2点 3点 12点 庄家胜 其他情况游戏继续
玩家再次要色子 如果摇出7点 庄家胜
如果摇出第一次摇的点数 玩家胜
否则游戏继续 玩家继续摇色子
玩家进入游戏时有1000元的赌注 全部输光游戏结束
代码语言:javascript
复制
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("你可以走了")
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档