B. Jumps
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are standing on the OXOX-axis at point 00 and you want to move to an integer point x>0x>0.
You can make several jumps. Suppose you're currently at point yy (yy may be negative) and jump for the kk-th time. You can:
What is the minimum number of jumps you need to reach the point xx?
Input
The first line contains a single integer tt (1≤t≤10001≤t≤1000) — the number of test cases.
The first and only line of each test case contains the single integer xx (1≤x≤1061≤x≤106) — the destination point.
Output
For each test case, print the single integer — the minimum number of jumps to reach xx. It can be proved that we can reach any integer point xx.
Example
input
Copy
5 1 2 3 4 5
output
Copy
1 3 2 3 4
Note
In the first test case x=1x=1, so you need only one jump: the 11-st jump from 00 to 0+1=10+1=1.
In the second test case x=2x=2. You need at least three jumps:
Two jumps are not enough because these are the only possible variants:
In the third test case, you need two jumps: the 11-st one as +1+1 and the 22-nd one as +2+2, so 0+1+2=30+1+2=3.
In the fourth test case, you need three jumps: the 11-st one as −1−1, the 22-nd one as +2+2 and the 33-rd one as +3+3, so 0−1+2+3=40−1+2+3=4.
=========================================================================
首先对于能够用 1+2+...n表示的,那么肯定首选n种
1+2+3+............+n = y
y ->n
y-1 y的基础之上减1
y-2 第一步变成-1
y-3 第二部变成-1
。。
y-n+1 第n-1部分变成-1
y-n 也就是1+2+3....+n-1 会被上一次循环拦截掉
- #include
- using namespace std;
- typedef long long int ll;
-
- int main()
- {
-
-
- int t;
-
- cin>>t;
-
- while(t--)
- {
- int n;
-
- cin>>n;
-
- for(ll i=1;;i++)
- {
- ll now=(i)*(i+1)/2;
-
- if(now==n)
- {
- cout<
- break;
- }
- else if(now==n+1)
- {
- cout<1<
- break;
- }
- else if(now>n)
- {
- cout<
- break;
-
- }
- }
- }
- return 0;
- }
-
相关阅读:
常用JavaScript代码片段汇总
智慧水利水务数字孪生应用,典型业务场景分享
Unittest(单元测试)
webrtc gcc算法(1)
Allegro Design Entry HDL字体模糊解决方案图文教程
VOCALOID笔记
字符串:比较、拼接、切割、转义字符;相关切割、替换、查找、去除空白、转大小写函数的方法
博实转债上市价格预测
【计算机网络面试题(62道)】
LeetCode-全排列(C++)
-
原文地址:https://blog.csdn.net/jisuanji2606414/article/details/126196588