文章
8
粉丝
14
获赞
1
访问
8.2k
按照下标规律,2i+1和2i+2一直循环下去,直到越界(i>=n)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m, n;
while(cin >> m >> n) {
int index = m - 1;
int ans = 1;
queue<int> q;
q.push(index);
while(!q.empty()) {
int id = q.front();
q.pop();
int id1 = 2 * id + 1 >= n ? -1 : 2 * id + 1;
int id2 = 2 * id + 2 >= n ? -1 : 2 * id + 2;
if(id1 != -1) {
q.push(id1);
ans++;
}
if(id2 != -1) {
q.push(id2);
ans++;
}
}
cout << ans << endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发