python函数练习

  1. 给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n), 可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数

    def find_difnumber(ls):
    	for index in range(0,len(ls)):
    		for num in range(index+1,len(ls)):
    			if ls[index] == ls[num]:
    				print(f"{ls[index]}这个数字出现了重复")
     
     
     
    ls = [1,4,2,3,2,5,1]
    find_difnumber(ls)
  2. 找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

    def func():
        for i in range(10001):
            if (i % 5 == 0 or i % 6 == 0) and i % 30 != 0:
                print(i,end = " ")
     
     
    func()    
  3. 写一个方法,计算列表所有偶数下标元素的和(注意返回值)

    ls = eval(input("请输入一个列表:"))
     
    def count_oddindex(ls):
        count = 0
        for i in range(2,len(ls)):
            if i % 2 == 0:            
                count += ls[i]
        return count
     
     
    print("列表中所有偶数下标元素的和是:",count_oddindex(ls))
  4. 【选做】某个人进入如下一个棋盘中,要求从左上角开始走, 最后从右下角出来(要求只能前进,不能后退), 问题:共有多少种走法?

    0 0 0 0 0 0 0 0
    
    0 0 0 0 0 0 0 0
    
    0 0 0 0 0 0 0 0
    
    0 0 0 0 0 0 0 0
    
    0 0 0 0 0 0 0 0
def countPaths(x):
    dp = [[0] * x for _ in range(x)]
    dp[0][0] = 1

    for i in range(x):
        for j in range(x):
            if i > 0:
                dp[i][j] += dp[i-1][j]
            if j > 0:
                dp[i][j] += dp[i][j-1]

    return dp[x-1][x-1]

x = int(input("请输入棋盘的大小:"))
result = countPaths(x)
print("共有", result, "种走法")

     5.【选做】汉诺塔问题:

相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如图1)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。

我们用Python递归的方法可以解决它。

1.确定一个边界,当n=1时,直接把圆盘从A杆移动到C杆即可。

2.对于n个圆盘时,我们可以把问题分为两步,先移动前n-1个圆盘(从A移到B),再移动第n个圆盘(从A移到C),最后再移动n-1个圆盘(从B移到C)。

steps=0
def hanoi(n,a,b,c):
    global steps
    if n==1:
        steps+=1
        print("第{}步: 圆盘{} 从 {} 移动到 {}".format(steps,1,a,c))
    else:
        hanoi(n-1,a,c,b)
        print("第{}步: 圆盘{} 从 {} 移动到 {}".format(steps,n,a,c))
        steps+=1
        hanoi(n-1,b,a,c)
 
if __name__=="__main__":
    hanoi(3,"A","B","C")

相关推荐

  1. Python入门-实战练习-基于函数

    2024-03-27 18:44:05       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 18:44:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 18:44:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 18:44:05       82 阅读
  4. Python语言-面向对象

    2024-03-27 18:44:05       91 阅读

热门阅读

  1. 海思 Hi3403V100 简介

    2024-03-27 18:44:05       85 阅读
  2. Idea与DataGrip各版本通用破解码,无需脚本。

    2024-03-27 18:44:05       110 阅读
  3. 深入理解 LVS:配置与应用详解

    2024-03-27 18:44:05       46 阅读
  4. 单位里,永远要记住这些残忍的处事之道!

    2024-03-27 18:44:05       34 阅读
  5. Linux安装程序

    2024-03-27 18:44:05       43 阅读
  6. Linux UVC Gadget Driver开发

    2024-03-27 18:44:05       40 阅读
  7. c#委托案例

    2024-03-27 18:44:05       38 阅读
  8. SpringBoot-注解:@Async 使用

    2024-03-27 18:44:05       43 阅读
  9. springBoot实现热部署

    2024-03-27 18:44:05       30 阅读
  10. 排序问题HJ37 统计每个月兔子的总数

    2024-03-27 18:44:05       34 阅读
  11. Nginx(面试)

    2024-03-27 18:44:05       36 阅读
  12. Ansible Playbook 精髓:书写与应用全攻略

    2024-03-27 18:44:05       40 阅读
  13. linux命令 curl忽略https证书

    2024-03-27 18:44:05       38 阅读