• 乌鸦喝水之谜


    1 引言

    在小学的时候我们就听说过乌鸦用石头塞瓶子来喝水,体现了乌鸦的机智,现在让我们用python来求解乌鸦喝水需要塞多少颗石头。

    2 问题

    现在有一个底面为正方形的长方体,当水面于瓶口的距离小于2cm时,乌鸦便可以喝到水,已知每颗石头的体积固定为8cm3

    问:需要多少颗石头,乌鸦才能喝到水

    第一行输入N M,分别表示边长和水面与瓶口的距离

    第二行输出一个整数,表示需要的石头数

    示列

    输入:10 9  

    输出:88

    3 方法

    输入两个整数:N M,一个是长方体底面的边长,一个是瓶口与瓶子里水面的距离。在我做的时候,想到了俩种方法,一是直接计算 ,二是用循环的方法来求所需石头的数量

    4 实验结果与讨论

    通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

    代码清单

    # 第一种方法
    N, M = map(int, input().split())
    v = (M - 2) * N*N  # 水面到距瓶口2cm之间的体积
    a = v / 8    # 初次计算所需的石头数,可能是小数
    if a > int(a):  # 如果a是小数,一定大于int(a)
    a = int(a) + 1  # 所以a = int(a) + 1
    print(a)  # 如果初算a为整数,直接输出,如果为小数,输出int(a) + 1
    # 第二种方法
    N, M = map(int, input().split())
    n = 0   # 初始石头数量
    while M >= 2: # 当M不小于二是循环
       n += 1
       v = M*N*N
       v -= 8
       M = v / (N*N)
    print(n)

    5 结语

    用python可以解决一些数学问题和生活问题,在做这道题时,如果想直接求解的话,要注意用长方体的体积来除以石头的体积,要考虑到除出来的结果部位整数,而且不能直接用int。用循环来做,思考的东西会少一些,我建议用循环来求。

  • 相关阅读:
    自学Java的初学者,如何开始?
    操作系统·操作系统引论
    春风吹又生的开源项目「GitHub 热点速览」
    ES 数据迁移最佳实践
    要怎么才能有效降低论文的查重率呢?
    windows+python实现自动化部署
    Java释疑
    软件测试和调试有什么区别?
    树莓派安装wps2019教程
    kube-bench-CIS基准的自动化扫描工具学习
  • 原文地址:https://blog.csdn.net/gschen_cn/article/details/126377099