当前位置: 首页 > article >正文

python 模拟法

模拟法:通过模拟把内容转变为数学思维

目录

模拟法:通过模拟把内容转变为数学思维

1、开根问题:一个数经过多少次开根变换后会变为 1 

2、小蓝停车场收费问题。

3、立方体问题

4、把一个数n的每位非0位逐渐减1,直至这个数为0


1、开根问题:一个数经过多少次开根变换后会变为 1 

对于一个整数 n ,我们定义一次开根变换会将 n 变为开根号后的整数部分。即变为平方和不超过 n 的数中的最大数。
例如,20 经过开根变换将变为 4 ,如果再经过一次开根变换将变为 2 ,如果再经过一次开根变换将变为 1 。


请问,2024经过多少次开根变换后会变为 1
初始值为 2024。
第一次开根变换:2024≈45.0112024≈45.011,取整数部分为 45。
第二次开根变换:45≈6.70845≈6.708,取整数部分为 6。
第三次开根变换:6≈2.4496≈2.449,取整数部分为 2。
第四次开根变换:2≈1.4142≈1.414,取整数部分为 1。
因此,2024经过 4 次开根变换后会变为 1。

import math
def kaiSqrt(n):
    count = 0
    while n > 1:
        n = int(math.sqrt(n))  #注意:要加int取整数部分
        count += 1
    return count
n = int(input())
result = kaiSqrt(n)
print(result)

2、小蓝停车场收费问题。

停车场的收费规则为:每 15 分钟收费 2 元,不满 15 分钟的不收费。
小蓝总共停车 n 分钟,请问收费总额是多少?

【输入格式】 输入一行包含一个整数 n ,表示小蓝停车的时长。
【输出格式】 输出一行包含一个整数,表示停车费用。

【样例输入】 150
【样例输出】 20
【样例输入】 2024
【样例输出】 268

n=int(input())
if n>=15 :
    b=n//15
    c=b*2
print(c)

3、立方体问题

小蓝有很多 1x1x1 的小立方体,他可以使用多个立方体拼成更大的立方体。
例如,小蓝可以使用 8 个小立方体拼成一个大立方体,每边都是 2 个。
又如,小蓝可以使用 27 个小立方体拼成一个大立方体,每边都是 3 个。
现在,小蓝有 2024 个小立方体,他想再购买一些小立方体,用于拼一个超大的立方体,
要求所有的小立方体都用上,拼成的大立方体每边长度都相等。 问小蓝最少需要购买多少个小立方体。

输入:2024
输出:173

import math
num = int(input())  #目前有的所有小立方体的个数
sum = 0    #sum为还需要的小立方体的个数
small = int(num**(1/3))
big = math.ceil(num**(1/3))
if small < big:
    sum = big ** 3 - num
print(sum)

4、把一个数n的每位非0位逐渐减1,直至这个数为0

小蓝有一个整数 n ,每次操作,可以将这个整数的每个非零数位减少 1 。
请问经过多少次操作,这个数会变为 0 。


例如,整数 2024 经过一次操作变为 1013,再经过一次操作变为 2 (即0002),
再经过两次操作变为 0 ,总共经过 4 次变换变为 0 。


【输入格式】 输入一行包含一个整数 n 。
【输出格式】 输出一行,包含一个整数,表示答案。
【样例输入】 2024
【样例输出】 4


【思路】:
操作次数:找到该整数的最大值位数=操作次数。

方法一:
n = int(input())
lst = []
while n != 0:
    lst.append(n%10)
    n = n // 10
count = max(lst)
print(count)
方法二:
def find_max(n):
    # 转换为字符串,遍历每一位字符
    digits = str(n)
    # 找出所有非零数字的最大值
    max_digit = max(int(d) for d in digits if d != '0')
    return max_digit
n = int(input()) #等同于n = int(input().strip())   #strip()方法移除字符串两端的空白字符
print(find_max(n))


http://www.kler.cn/a/446641.html

相关文章:

  • Java游戏开发基础:从零开始制作一个简单的2D游戏
  • apache-tomcat-6.0.44.exe Win10
  • List深拷贝后,数据还是被串改
  • fastdds:idl
  • Linux shell脚本用于常见图片png、jpg、jpeg、tiff格式批量转webp格式后,并添加文本水印
  • SQL语句整理五-StarRocks
  • 学技术学英文:SpringBoot的内置监控组件-Spring Boot Actuator
  • Android 10 Launcher3 删除谷歌搜索
  • c++中如何处理对象的创建与销毁的时机?
  • Python发送带key的kafka消息
  • TCP为什么需要三次握手和四次挥手?
  • 创新性融合丨卡尔曼滤波+目标检测 新突破!
  • C/C++语言基础--C++STL库之仿函数、函数对象、bind、function简介
  • 单元测试(C++)——gmock通用测试模版(个人总结)
  • Spring(三)-SpringWeb-概述、特点、搭建、运行流程、组件、接受请求、获取请求数据、特殊处理、拦截器
  • python实现word转html
  • AI大模型进一步推动了AI在处理图片、视频、音频、文本的等数据应用
  • 【新教程】非root用户给Ubuntu server设置开机自启服务-root用户给Ubuntu server设置开机自启服务
  • ArcGIS计算土地转移矩阵
  • 详细解释爬虫中的异常处理机制?
  • Rabbitmq实现延迟队列
  • Leetcode2545:根据第 K 场考试的分数排序
  • 26、基于SpringBoot的在线文档管理系统的设计与实现
  • R 基础运算
  • 基于卷积神经网络(CNN)和ResNet50的水果与蔬菜图像分类系统
  • 机器视觉检测相机基础知识 | 颜色 | 光源 | 镜头 | 分辨率 / 精度 / 公差