模拟法简介(蓝桥杯)

模拟法,顾名思义,就是利用计算机模拟问题的求解过程,从而得到问题的解。模拟法由于简单,因此又被称为"不是算法的算法"!

模拟法是学习算法的基础,通过模拟可以学习编程的各类技巧,提升初学者建立各种编程逻辑模型的感觉。大部分模拟题目直接摸拟就可以求解,还有少量模拟题目需要考生简化模拟过程,否则可能会使逻辑复杂,导致求解用时过长。

模拟法适用于问题求解清晰,运算规模较小的问题。如果问题求解的时空代价很大,就要考虑是否有其他更好的解决方案。

【案例解析】不高兴的津津

津津上初中了。妈妈认为津津应当更加用功地学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外,妈妈每周还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过8小时就会不高兴,而且上得越久就越不高兴。假设津津不会因为其他事不高兴,并且她的不高兴不会持续到第2天。请你帮忙检查津津下周的日程安排,看看她下周会不会不高兴;如果会,那么她哪天最不高兴。

输入包括7行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出一个数字。如果津津不会不高兴,则输出0,如果会,则输出最不高兴的是周几(用1,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的那一天。

例如,输入下列数据:

5 3

6 2

7 2

5 3

5 4

0 4

0 6

则输出为3。

本题可以采用模拟方法依次判断哪天最不高兴,并将最不高兴的那一天输出。在输出过程中要注意以下几个问题。

(1)判断n个数中的最大值

cpp 复制代码
max = 0;
for(i = 1; i <= n; i++)
{
	scanf("%d",&a);
	if(a > max)
	{
		max = a;
	}
 } 

(2)数据存储问题

本题的数据一共有7组,不算多,也不算少,可以直接运算,也可以将数据存储到数组后再进行计算。

若不采用数组,则模拟的过程如下。

cpp 复制代码
 int a,b,s,max = 0,i,day = 0;
 for(i = 1;i <= 7; i++)
 {
 	scanf("%d%d",&a,&b);
 	s = a+ b;
 	if((s > max) && (s > 8))
 	{
 		max = s,
 		day = i;
	 }
	 printf("%d",day);
 }

如果采用数组,则可以将数据存储起来,在后续的操作中会更加方便,也更容易理解。采用数组模拟的方法如下。

cpp 复制代码
int a,b,i,day,max,array[8];
char c;
for(i = 1; i <= 7; i++)
{
	scanf("%d%d",&a,&b);
	array[i] = a + b;
}
max = array[0];
for(i = 1; i<= 7;i++)
  {
  	if(max < array[i])
     {
     	max = array[i];
     	day = i;
	 }
	  
  }
  if(max > 8)
     printf("%d",day);
  else
     printf("%d",0);

模拟法一般都不难,但也会考查一些基础算法,例如本题考查了如何在n个数中求最大值,及如何判断津津的不高兴条件。

相关推荐
zzz_236813 小时前
码上面试平台测试报告:功能、后台管理、异常状态与 JMeter 性能验证
jmeter·面试·职场和发展
浩哥学JavaAI1 天前
2026年最新AI agent面试(10)_通信与行业动态
人工智能·面试·职场和发展
hqyjzsb1 天前
非计算机专业学生怎么进入AI相关方向
人工智能·职场和发展·金融·数据挖掘·数据分析·aigc·业界资讯
tkevinjd1 天前
力扣72-编辑距离
算法·leetcode·职场和发展
天才测试猿2 天前
Selenium自动化测试网页加载太慢怎么解决?
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
wjm0410062 天前
ios学习路线 -- objective-c 基础
面试·职场和发展
ychqsq2 天前
88.归途
经验分享·职场和发展
CoderYanger2 天前
A.每日一题:3020. 子集中元素的最大数量
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
lvchaoq2 天前
this指向面试代码输出题目合集
javascript·面试·职场和发展
weixin_727535622 天前
JVM 常见八股面试问答:深入底层原理
jvm·面试·职场和发展