首页 > 试题广场 >

访友

[编程题]访友
  • 热度指数:9246 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小易准备去拜访他的朋友,他的家在0点,但是他的朋友的家在x点(x > 0),均在一条坐标轴上。小易每一次可以向前走1,2,3,4或者5步。问小易最少走多少次可以到达他的朋友的家。

输入描述:
一行包含一个数字x(1 <= x <= 1000000),代表朋友家的位置。


输出描述:
一个整数,最少的步数。
示例1

输入

4

输出

1
示例2

输入

10

输出

2
头像 牛客题解官
发表于 2020-06-05 18:46:54
精华题解 题解: 题目难度:一星 考察点: 数论,贪心 易错点: 很多同学拿到这个题都有一种比较直观的想法,希望使用,维护两个值,一个是当前值,一个是当前步数,然后通过队列去维护所有的情况,当第一次值为时,所对应的值即为最小步数。但是这个题的空间是承受不下所有状态的,所以这种方法并不可取。 解法:贪心+数论 展开全文
头像 白色高跟鞋
发表于 2020-04-29 01:08:01
贪心:未到达终点前每一次走的越远越好;由于步数从1~5,不担心直接越过终点, 所以直接对五求商向上取整就好。不过这种题目假设给个能否走到的变体条件可能就要靠动态规划才比较好解了。 from math import ceil x = int(input()) print(ceil(x/5)) 动态规 展开全文
头像 苏觅云
发表于 2022-05-22 22:08:06
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = sc.n 展开全文
头像 恒成立
发表于 2021-09-18 20:17:06
import java.io.*; import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); 展开全文
头像 .沫沫
发表于 2022-04-21 14:54:39
#include <stdio.h> int main() { int x,n; scanf("%d",&x); if(x%5==0) n=x/5; else n=x/5+1; printf("%d",n); return 0; }
头像 牛客289281343号
发表于 2020-04-26 09:29:56
解题思路:贪心,每次走得步数越大,总次数越少。先以5步走,最后不够5步的也可以一次走完。import java.util.*;public class Main{ public static void main(String arg[]){ Scanner scan=new Sc 展开全文