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

Python:模拟(包含例题:饮料换购 图像模糊 螺旋矩阵)

模拟题:直接按照题目含义模拟即可,一般不涉及算法

注意:

1.读懂题:理清楚题目流程

2.代码和步骤一一对应:变量名,函数名,函数功能

3.提取重复的部分,写成对应的函数(子模块)

4.按顺序写,分块调试

例题一:饮料换购

题目描述

乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。

请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料。

输入描述

输入一个整数 n(0<n<1000)n(0<n<1000),表示开始购买的饮料数量。

输出描述

输出一个整数,表示实际得到的饮料数

输入输出样例

a87395f2c6674f17b0c22e7be7f57380.png

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

代码

#n表示瓶盖的数量
n=int(input())
#刚开始答案等于n
ans=nwhile True:if n>=3:#把三个瓶盖换成一个饮料n=n-3#统计饮料的总和ans +=1#更新瓶盖数量n+=1else:breakprint(ans)

例题二:图像模糊 

题目描述

小蓝有一张黑白图像,由 n×mn×m 个像素组成,其中从上到下共 nn 行,每行从左到右 mm 列。每个像素由一个 00 到 255255 之间的灰度值表示。

现在,小蓝准备对图像进行模糊操作,操作的方法为:

对于每个像素,将以它为中心 3×33×3 区域内的所有像素(可能是 99 个像素或少于 99 个像素)求和后除以这个范围内的像素个数(取下整),得到的值就是模糊后的结果。

请注意每个像素都要用原图中的灰度值计算求和。

输入描述

输入的第一行包含两个整数 n,mn,m。

第 22 行到第 n+1n+1 行每行包含 mm 个整数,表示每个像素的灰度值,相邻整数之间用一个空格分隔。

其中,1≤n,m≤1001≤n,m≤100 。

输出描述

输出 nn 行,每行 mm 个整数,相邻整数之间用空格分隔,表示模糊后的图像。

c80d2726413e48cf97ba567b6ea85691.png

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

代码

 

n,m=map(int,input().split())
Map=[]
for i in range(n):a=list(map(int,input().split()))Map.append(a)  #将生成的列表添加到Map列表中#构建一个N行M列二维List
ans=[[0]*m for i in range(n)]#遍历列表的每个位置for i in range(n):for j in range(m):#(i-1,j-1) (i-1,j) (i-1,j+1)#(i,j-1)   (i,j)   (i,j+1)#(i+1,j-1) (i+1,j) (i+1,j+1)#遍历周围的3*3区域tot, cnt=0,0 #分别表示总和,个数 for delta_x in [-1,0,1]:for delta_y in[-1,0,1]:x=i+delta_xy=j+delta_y#判断坐标(x,y)是否存在if 0 <=x<n and 0<=y<m:#更新和,个数tot +=Map[x][y]cnt +=1ans[i][j]=tot //cntfor a in ans:print(" ".join(map(str, a)))

例题三:螺旋矩阵

问题描述

对于一个 n行 m 列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵。

例如,一个 4 行 5 列的螺旋矩阵如下:

1 2 3 4 514 15 16 17 613 20 19 18 712 11 10 9 8

 

输入描述

输入的第一行包含两个整数 n,m,分别表示螺旋矩阵的行数和列数。

第二行包含两个整数 r,c,表示要求的行号和列号。

其中,2≤n,m≤1000,1≤r≤n,1≤c≤m2≤n,m≤1000,1≤r≤n,1≤c≤m。

输出描述

输出一个整数,表示螺旋矩阵中第 r行第 c 列的元素的值。

输入输出样例

示例

输入

4 5
2 2

 

输出

15

 

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

代码

n,m=map(int,input().split())
r,c=map(int,input().split())Map=[[0]*m for i in range(n)]#模拟进行过程(x,y)=valux,y=0,0
value=1
Map[x][y] = value#(x,y-1) (x,y) (x,y+1)
#        (x+1,y)while value<n*m:#不断向右走:1.保证下一个点不越界 2.保证下一个点没有数字while y+1 <m and Map[x][y+1]==0:y +=1value +=1Map[x][y]=value#向下走:保证下一个点不越界,保证下一个点没有数字while x+1 <n and Map[x+1][y]==0:x+=1value +=1Map[x][y]=value#向左走while y-1 >=0 and Map[x][y-1]==0:y -=1value +=1Map[x][y]=value#向上走while x-1 >=0 and Map[x-1][y]==0:x -=1value +=1Map[x][y]=valueprint(Map[r-1][c-1])

 

 

http://www.lryc.cn/news/509900.html

相关文章:

  • git分支与部署环境的关系以及开发规范
  • 2024最新鸿蒙开发面试题合集(一)-HarmonyOS NEXT Release(API 12 Release)
  • 【mybatis】详解 # 和 $ 的区别,两者分别适用于哪种场景,使用 $ 不当会造成什么影响
  • Java面试题,数据结构,图的最短路径算法应用于社交网络分析
  • Tree数据处理
  • idea配置gitee仓库
  • SpringBoot 事务
  • 我的JAVA-Web基础(1)
  • 【Leetcode 热题 100】207. 课程表
  • 从CreateDialogIndirectParam起---我与大模型对话
  • 重温设计模式--建造者模式
  • CSS(五):定位
  • JSON 系列之2:JSON简单查询
  • SQL 简单查询
  • YOLOv9-0.1部分代码阅读笔记-metrics.py
  • KaiOS 4.0 | DataCall and setupData implemention
  • nginx-rtmp服务器搭建
  • [c++进阶(三)]单例模式及特殊类的设计
  • 企业内训|高智能数据构建和多模态数据处理、Agent研发及AI测评技术内训-吉林省某汽车厂商
  • 009 Qt_显示类控件_QLCDNumber、ProgressBar、Calendar
  • --spring.profiles.active=prod
  • 深入解析JVM中对象的创建过程
  • 使用开源在线聊天工具Fiora轻松搭建个性化聊天平台在线交流
  • ffmpeg之显示一个yuv照片
  • MySQL中Performance Schema库的详解(下)
  • 【Rust自学】7.1. Package、Crate和定义Module
  • 【Git】-- 版本说明
  • 1919C. Grouping Increases
  • Pion WebRTC 项目教程
  • 【安全编码】Web平台如何设计防止重放攻击