Python接收一个正整数作为参数,返回对其进行因数分解后的结果列表...

一、题目:

1、接收一个正整数作为参数,返回对其进行因数分解后的结果列表。例如,接收参数50,返回[2,5,5]。

 

2、接收两个正整数参数n和a(要求a为小于10的自然数),计算形式如a+aa+aaa+aaaa+…+aaa…aaa 的表达式前n项的值。

 

3、模拟报数游戏。有n个人围成一圈,从O到n一1按顺序编号,从第一个人开始从1到k报数,报到k的人退出圈子,然后圈子缩小,从下一个人继续游戏,问最后留下的是原来的第几号。

 

4、接收一个字符串作为参数,判断该字符串是否为回文(正读和反读都一 样的字符串),如果是则返回True,否则返回False。不允许使用切片。

 

二、代码展示:

# -*- coding: utf-8 -*-
'''
 @Author  : Jackma
 @Time    : 2020/10/27 20:30
 @File    : 2020_10_27.py
 @Software: PyCharm
 @URL     : www.jackrma.com
 @Copyright:博客所有权归本人和CSDN所有,如有转载请在显著位置给出博文
            链接和作者姓名,否则本人将付诸法律。
 @Version : 
'''

# 1、接收一个正整数作为参数,返回对其进行因数分解后的结果列表。例如,接收参数50,返回[2,5,5]。
# 2、接收两个正整数参数n和a(要求a为小于10的自然数),计算形式如a+aa+aaa+aaaa+…+aaa…aaa 的表达式前n项的值。
# 3、模拟报数游戏。有n个人围成一圈,从O到n一1按顺序编号,从第一个人开始从1到k报数,报到k的人退出圈子,然后圈子缩小,
#    从下一个人继续游戏,问最后留下的是原来的第几号。
# 4、接收一个字符串作为参数,判断该字符串是否为回文(正读和反读都一样的字符串),如果是则返回True,否则返回False。
#    不允许使用切片。

# 1
def factorization():
    '''
    接收一个正整数作为参数,返回对其进行因数分解后的结果列表
    :return:
    '''
    list1 = []                 # 定义一个空列表
    n = int(input('请输入一个正整数:'))
    for i in range(2, n):
        while i != n:
            if n % i == 0:
                list1.append(i)
                n = n / i
            else:
                break
    list1.append(int(n))
    print("输出因式分解的结果列表:%s" %list1)   # %s代表格式化字符串

factorization()

# 2
def add_n():
    '''
    接收两个正整数参数n和a(要求a为小于10的自然数),计算形式如a+aa+aaa+aaaa+…+aaa…aaa 的表达式前n项的值
    :return:
    '''
    n, a = map(int, input('请输入两个正整数(用空格隔开):').split())
    flag = 0
    m = a
    sum = int(0)
    for i in range(1, n + 1):
        sum += m
        if flag == 0:
            print(m, end=" ")
        else:
            print("+ {}".format(m), end=" ")
        m = 10 * m + a
        flag += 1
    print("= %u" %sum)           # %u 代表格式化无符号整型

add_n()

# 3
def last_num():
    '''
    模拟报数游戏。有n个人围成一圈,从O到n一1按顺序编号,从第一个人开始从1到k报数,报到k的人退出圈子,然后圈子缩小,
    从下一个人继续游戏,问最后留下的是原来的第几号
    :return:
    '''
    n = int(input('请输入人数:'))
    k = int(input('请输入从第几个人开始报数:'))
    c = []
    for i in range(1, n + 1):
        c.append(i)
    num = 1
    while len(c) != 1:
        c.append(c.pop(0))  # 把已报数的人取出放到队尾,以此实现围成圈循环往复
        num += 1
        if num == k:
            del c[0]  # 把报到规定数字的人踢出圈子
            num = 1   # 重新从1开始报数
    print('输出最后留下人的号码:%s' %c)

last_num()

# 4
def palindrome():
    '''
    接收一个字符串作为参数,判断该字符串是否为回文(正读和反读都一样的字符串),如果是则返回True,否则返回False。
    不允许使用切片。
    :return:
    '''
    str1 = input("请输入一串字符串:")
    if str1[::-1] == str1:  # 使用if语句判断正负是否相同
        print("True")
    else:
        print("False")

palindrome()

 

  • 15
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值