Stairs
https://codeforces.com/problemset/problem/1419/B
//题意:n阶楼梯,第i列有i个方块。求x个方块能建造多少个楼梯。
//思路:一个nice楼梯是一个nice正方形加上两个它前面的东西制造的,所以只要不停的放正方形,阶数就是1,3,7,15,方块数为i*(i+1)/2;
#include<iostream> using namespace std; typedef long long ll; int main() { int t; cin>>t; while(t--) { ll x; cin>>x; //ll tmp=x; ll cnt=0; for(ll i=1;i*(i+1)/2<=x;i=i*2+1)//枚举nice楼梯阶数 { x-=i*(i+1)/2;//需要的方块数为到i为止的累加公式 cnt++; } cout<<cnt<<endl; } return 0; }

浙公网安备 33010602011771号