UVa 846-Steps

一道数学题,因为开始和结束的步数都是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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值