一道数学题,因为开始和结束的步数都是1,而且每一步只能比前一步大1,小1,或者和上一步相等。所以我从头和尾一起增加步数,所以用一个flag变量控制,第一次是从头开始,然后判断下还剩下的步数是否大于0,在从尾部增加。
/*************************************************************************
> File Name: 846.cpp
> Author: Toy
> Mail: ycsgldy@163.com
> Created Time: 2013年05月28日 星期二 21时07分44秒
************************************************************************/
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cstdlib>
#include <climits>
#include <sstream>
#include <fstream>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
#include <set>
using namespace std;
const int INF = 0x7fffffff;
int Case, m, n;
int main ( ) {
scanf ( "%d", &Case );
while ( Case-- ) {
scanf ( "%d%d", &m, &n );
int cnt = n - m;
int step = 1, ans = 0;
bool flag = 0;
while ( cnt > 0 ) {
cnt -= step;
++ans;
if ( flag ) ++step;
flag = !flag;
}
printf ( "%d\n", ans );
}
return 0;
}