1419B - Stairs

思维:

我们可以发现,nice stairs的长度为1,3,7,15... 不难发现,长度变化每次*2+1,而每次长度的nice stairs是等差数列,所以当长度为n时,一共有n(n+1)2个正方形

#include <iostream>
using namespace std;
long long n;
int main () {
	int T;
	cin >> T;
	while (T--) {
		cin >> n;
		int ans = 0;
		long long cnt = 1;
		while (n >= cnt*(cnt+1)/2) {
			n -= cnt*(cnt+1)/2;
			ans++;
			cnt = cnt*2+1;
		}
		cout << ans << endl;
	}
	return 0;
}
posted @   incra  阅读(20)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示