首页 > 试题广场 >

目的地最短步数

[编程题]目的地最短步数
  • 热度指数:5334 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
考虑你从家出发步行去往一处目的地,该目的地恰好离你整数单位步长(大于等于1)。你只能朝向该目的地或者背向该目的地行走,而你行走的必须为单位步长的整数倍,且要求你第N次行走必须走N步。
请就给出目的地离你距离,判断你是否可以在有限步内到达该目的地。如果可以到达的话,请计算到达目的地的最短总步数(不能到达则输出-1)。

输入描述:
1个整数:目的地离你距离T


输出描述:
1个整数:最短总步数(进行了多少次行走)
示例1

输入

2

输出

3

说明

距离目的地2, 需要3步:朝向走1,背向走2,朝向走3
头像 豆豆瓣
发表于 2020-05-10 18:11:13
题目难度:二星 考察点:归纳 方法:归纳、找规律 1.分析: 这个题目其实就是相当于在1, 2, 3, 4....n中加正负号得到一个目标target,不需要BFS,我们可以采用贪心归纳的方法,因为我们要尽可能向右移动到达目的地,我们假设1+2+3+...+k=s 展开全文
头像 cchangcs
发表于 2019-08-02 19:30:48
完整代码: n = int(input()) def calc(n):   temp = 0   for i in range(1, n + 1):     temp += i     if temp == n:   &nbs 展开全文