python算法:谁在说谎?

news/2024/9/21 5:38:22

一,for循环:

1,功能:重复执行同一段代码
语法:

for index in range(n): 
    # 循环体代码

index : 用来依次接收可迭代对象中的元素的变量名
range()函数:负责返回整数序列

流程图:

2,应用

range可以同时指定start 和stop,用for遍历并打印

1
2
3
4
# 指定 start和stop
# print的参数 end=" " 用来使打印不换行
for num in range(3,9):
    print(num, end=" ")

运行结果:

3 4 5 6 7 8 

说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/16/python-suan-fa-shui-zai-shuo-huang/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,谁在说谎的题目与分析

1,题目:

现有张三、李四和王五三个人,张三说李四在说谎,李四说王五在说谎,而王五说张三和李四两
人都在说谎。要求编程求出这三个人中到底谁说的是真话?谁说的是假话?

2,分析:

假设:
张三所说内容为x,
李四所说内容为y,
王五所说内容为z
x==1 and y==0——张三说的是真话,李四在说谎
x==0 and y==1——张三在说谎,李四说的是真话
y==1 and z==0——李四说的是真话,王五在说谎
y==0 and z==1——李四在说谎,王五说的是真话
z==1 and x==0 and y==0——王五说的是真话,则张三和李四两人就都在说谎
z==0 and x+y!=0——王五在说谎,则张三和李四两人至少一人说的是真话

三,代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 三个条件都符合时,则得到结果
for x in range(2):
    for y in range(2):
        for z in range(2):
            if (((x and not y) or (not x and y)) and
                    ((y and not z) or (not y and z)) and
                    ((z and x == 0 and y == 0) or (not z and x + y != 0))):
                xstr = '张三说的是真话' if x == 1 else '张三说的是假话'
                ystr = '李四说的是真话' if y == 1 else '李四说的是假话'
                zstr = '王五说的是真话' if z == 1 else '王五说的是假话'
                print("x:", x, xstr)
                print("y:", y, ystr)
                print("z:", z, zstr)

运行结果:

x: 0 张三说的是假话
y: 1 李四说的是真话
z: 0 王五说的是假话

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/31733.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

无规律快速批量重命名文件(夹)-固定命名

首先,需要用到的这个工具:度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 这里有1万多个文件,要命名成无规律的、不同的文件名 目标文件名里面的是上面已经修正数据的目标 一句话思路:提取全部目标名称,放到要改动的地方去 打开工具,切换到“文件批量复制” 借助这个版块…

python算法: 棋盘上的麦粒(舍罕王赏麦)

一,for循环: 1,功能:重复执行同一段代码语法: for index in range(n): # 循环体代码 index : 用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列 流程图:2,应用 range可以同时指定start 和stop,用for遍历并打印1 2 3 4# 指定 start和stop # print的参数 e…

python算法:杨辉三角

一,认识递归函数 1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止 2,什么是递归函数:递归函数(recursive function)是指在函数体中可以…

python算法:百钱买百鸡

一,for循环: 1,功能:重复执行同一段代码语法: for index in range(n): # 循环体代码 index : 用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列 流程图:2,应用 range可以同时指定start 和stop,用for遍历并打印1 2 3 4# 指定 start和stop # print的参数 e…

python算法:鸡兔同笼

一,for循环: 1,功能:重复执行同一段代码语法: for index in range(n): # 循环体代码 index : 用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列 流程图:2,应用 range可以同时指定start 和stop,用for遍历并打印1 2 3 4# 指定 start和stop # print的参数 e…

python算法:角谷猜想

一,认识递归函数 1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止 2,什么是递归函数:递归函数(recursive function)是指在函数体中可以…

python算法:水仙花数

一,for循环: 1,功能:重复执行同一段代码语法: for index in range(n): # 循环体代码 index : 用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列 流程图:2,应用 range可以同时指定start 和stop,用for遍历并打印1 2 3 4# 指定 start和stop # print的参数 e…

python算法:n皇后

一,认识递归函数 1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止 2,什么是递归函数:递归函数(recursive function)是指在函数体中可以…