跳石板(待改进)
来源:互联网 发布:java api百度云盘 编辑:程序博客网 时间:2024/05/08 05:49
题目描述
小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3…….
这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。
例如:
N = 4,M = 24:
4->6->8->12->18->24
于是小易最少需要跳跃5次,就可以从4号石板跳到24号石板 .
输入描述
输入为一行,有两个整数N,M,以空格隔开。
(4 ≤ N ≤ 100000)
(N ≤ M ≤ 100000)
输出描述
输出小易最少需要跳跃的步数,如果不能到达输出-1
样例输入
4 24
样例输出
24
结果:运行慢。。。
#include <stdio.h>
int now_step;int end_step;
int flag = 0;
int sucess;
int show_min = -1;
void fun(int my_moment_step,int moment_i,int min)
{
// printf("my_moment_step = %d %d %d \n",my_moment_step,moment_i,min);
int i;
// int this_min = min;
if(moment_i != -1)
{
i = moment_i;
}
else
{
i = 2;
}
if(min != -1)
{
show_min = min;
}
while(i < my_moment_step && i <= end_step - my_moment_step)
{
// printf("\n 此时%d\t",my_moment_step);
// printf(" flag = %d\t",flag);
// printf("i = %d\n",i);
if((my_moment_step + i) % i == 0)
{
min++;
if(my_moment_step + i < end_step)
{
// printf("\n 跳转前my_moment_step = %d %d %d \n",my_moment_step,i,min);
// printf("跳转时 i =%d\n",i);
// printf("跳转后my_moment_step = %d %d %d \n\n",my_moment_step+i,i,min);
fun(my_moment_step + i,-1,min);
if(flag == 1)
{
min--;
flag = 0;
}
}
else if(my_moment_step + i == end_step)
{
// printf("SUCCESS!!\t");
// printf("为什么 = %d\n",show_min);
if(show_min != -1 && show_min > min)
{
show_min = min;
}
printf("my_moment_step = %d %d %d \n",my_moment_step+i,i,min);
printf(" wuyu %d\n",show_min);
printf("!!!!!!!!!!!!!!!!!!!show_min = %d\n\n",min);
if(sucess > min)
{
sucess = min;
}
flag = 1;
return;
}
}
i++;
}
flag = 1;
return;
}
int main()
{
while(1)
{
int moment_step = 0;
scanf("%d %d",&now_step,&end_step);
// printf("%d %d\n",now_step,end_step);
sucess = end_step;
fun(now_step,-1,0);//主操作
if(sucess == end_step)
{
printf("final = -1");
}
else
{
printf("final = %d\n",sucess);
}
}
return 0;
}
0 0
- 跳石板(待改进)
- 跳石板问题(约数)
- 跳石板
- 跳石板
- 跳石板
- 跳石板
- 跳石板
- 跳石板 札记
- 网易---跳石板
- [编程题] 跳石板
- [编程题] 跳石板
- 算法:跳石板
- [编程题]跳石板
- 【BFS】跳石板
- [编程题] 跳石板
- 跳石板-动态规划
- 【算法题】跳石板
- 跳石板---动态规划
- swift switch选择结构
- javascript中的 事件的绑定1
- Android之二维码生成与识别
- 文章标题
- Leetcode-94. Binary Tree Inorder Traversal
- 跳石板(待改进)
- tcnative-1.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
- 日常潜水-20161013-进一步细化ping IP地址结果导出成csv文件
- 嵌入式按键驱动,支持短按、长按、双击(中断方式)
- hdu5544 - Ba Gua Zhen 按位贪心+xor性质
- Unity生成.assets
- javascript中的 事件的绑定 2
- 【搞事情】 学习如何写一个网页上的交互游戏 【计划篇】
- 代码补丁点分析与反制-笔记