纯思维题目啊。。。。
最关键的是可以测到的楼梯的定义,有可能没用完就已经测到了。
#include <cstdio>
unsigned long long d[64],n,m,x,y;
int main() {
//freopen("out.txt","w",stdout);
int k;
while(scanf("%lld%lld",&n,&m) == 2 && n)
{
for(int i = 1; i < 64; i++) d[i] = i;
int cnt = 0;
while(++cnt < n) {
x = 1;
for(int i = 1; i < 63; i++) {
y = x; x = d[i+1];
d[i+1] = y + d[i] + 1;
}
}
int ans = -1;
for(int k = 1; k <= 63; k++) {
if(d[k] >= m) {ans = k; break; }
}
if(ans < 0) printf("More than 63 trials needed.\n");
else printf("%d\n",ans);
}
}