首页 > 其他分享 >[每天例题]跳石板 C语言

[每天例题]跳石板 C语言

时间:2023-04-21 16:03:06浏览次数:44  
标签:10 12 石板 int C语言 例题 步数

跳石板

题目

https://www.nowcoder.com/practice/4284c8f466814870bae7799a07d49ec8?tpId=122&tqId=33674&ru=/exam/oj

思路分析

以从石板4调到石板24为例:

i=4: 4(0)——>6(1)

i=5:(无)

i=6: 4(0)——>6(1)——>8(2)   or  4(0)——>6(1)——>9(3)

i=7:(无)

i=8: 4(0)——>6(1)——>8(2)——>10(3)  or   4(0)——>6(1)——>8(2)——>12(3)

i=9:4(0)——>6(1)——>9(3)——>12(4)【由于与i=8时的第二分支比步数大1,故选取i=8时的第二分支】

i=10:4(0)——>6(1)——>8(2)——>10(3)——>12(4)【舍弃,理由同上】  or  4(0)——>6(1)——>8(2)——>10(3)——>15(4)

.......

所以我们可以通过i的遍历寻找到跳到合适石板上的步数。

代码

这个代码放到题目验证无法通过,因为当m过大时,运算超时,这道题最好的解答还是使用动态规划,但是求较小的m时,如果没有学过动态规划,这个代码也可以用。

#include<stdio.h>
int main()
{
	int n,m;
	int i,j;
	int s[100000];
	scanf("%d%d",&n,&m);
	s[n]=0;//步数 
	for(i=n;i<=m;i++)
	{
		for(j=2;j<i;j++)//寻找约数 
		{
			if(i%j==0)
			{
				if(s[i+j]==0)
				{
					s[i+j]=s[i]+1;
					if(i+j==m)
					{
						printf("%d",s[m]);
					} 
				}
			}
		}
	}
	if(s[m]==0)//无法跳到目标石板
	{
		printf("-1");
	 } 
	return 0; 
 } 

 运行结果

 

标签:10,12,石板,int,C语言,例题,步数
From: https://www.cnblogs.com/hcrzhi/p/17340704.html

相关文章

  • C语言项目实操-学生管理系统
    本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"!作者:张磊|慕课网讲师0基础学员在经过C语言基础语法的学习后,需要通过一些实战案例来学习如何将C语言应用到实际工作中,今天我们通过一个学生管理系统案例的开发来提升实际开发能力。1.系统介绍在这里,我们首......
  • 一维与二维前缀和(蓝桥杯复习+例题讲解+模板c++)
    文章目录前缀和二维前缀和总结3956.截断数组99.激光炸弹前缀和前缀和是一种常见的算法,用于快速计算数组中某一段区间的和。前缀和的思想就是预处理出数组中前缀和,然后用后缀和减去前缀和,即可快速计算区间和。以一维数组为例,设表示数组中第个元素的值,表示数组中前个元素的......
  • 单调队列(例题详解+模板cpp)
    有一类问题需要维护一段区间内的最大值或最小值,例如滑动窗口、区间最值等问题。一般情况下,我们可以使用线段树、ST表等数据结构来解决这类问题,但是这些数据结构的实现较为复杂,需要一定的时间和精力来学习和掌握。而单调队列则是一个简单而高效的数据结构,可以用来解决这类问题。基本......
  • Trie字典树(例题详解+模板cpp)
    字典树(Trie树)一:概念字典树是一种树形结构,用于存储一组字符串,支持快速的字符串查找和前缀匹配。字典树的本质是利用字符串之间的公共前缀,将具有相同前缀的字符串合并在一起,从而实现高效的字符串操作。数据结构字典树是一棵多叉树,每个节点包含若干个指向子节点的指针,每个节点代表一......
  • bfs与dfs详解(经典例题 + 模板c-代码)
    文章目录模板+解析dfsbfs1562.微博转发3502.不同路径数165.小猫爬山模板+解析DFS(深度优先搜索)和BFS(广度优先搜索)是图论中两个重要的算法。dfs其中DFS是一种用于遍历或搜索树或图的算法,BFS则是一种用于搜索或遍历树或图的算法。两种算法都有其自身的优点和缺点,应用于不同的场景中......
  • 并查集及其扩展(附例题与完整讲解cpp)
    文章目录基础并查集1.P1551亲戚2.P1536村村通种类并查集1.P1892[BOI2003]团伙2.P1525[NOIP2010提高组]关押罪犯3.P2024[NOI2001]食物链带权并查集基础并查集并查集就是用来维护一些元素之间的关系的集合。例如A的亲戚是B,则我们可以把A与B放到同一个集合中,表示AB属......
  • 二分查找例题与模板(蓝桥杯复习+例题讲解+模板c++)
    文章目录二分模板1460.我在哪?102.最佳牛围栏113.特殊排序二分模板本文所使用的二分模板都是确保最终答案落在[L,R]以内,循环以L==R结束,每次二分的中间值会使mid成为左右区间的二者之一。单调递增序列找大于等于x的最小的值:区间的划分[l,mid][mid+1,r]while(l<r){ intmid......
  • 第三章部分例题(6)
    例3-13值传递与引用传递的比较设计思路:通过函数对数值进行改变观察值传递与应用传递后原数值的变化代码:#include<iostream>#include<iomanip>usingnamespacestd;voidfiddle(intin1,int&in2){in1+=100;in2+=100;cout<<"Thevaluesare";cout<......
  • C语言基础知识(不想写笔记啦,就把它打出来)
    scanf()函数的使用:操作系统接收数据时其实都是当作字符来接收的。scanf()函数的两种用法:用法一:scanf("输入控制符",输入参数);功能:将从键盘输入的字符转化成输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中。用法二:scanf("非输入控制符输入控制符"......
  • 【C语言】基础知识
    整型数据浮点化:9*(x-32)/5.0部分库函数:乘方:doublepow(doublebase,doubleexponent) 开方:double sqrt(double x)pow(a,1.0/x)=a^(1.0/x) 就是a开x次方 格式化输出:%m.nlf 双精度浮点型输出,字符宽度m,小数点后保留n位。输出位数大于m时按原数据输出。位数不足时前面......