Gooooogle • 8个月前
#include<iostream>
using namespace std;
int a[100000];//存数列
//int vis[100000] = { 0 };//标记有没有被取走
int main() {
int n;
int i,j;
int num=0;//计数取了几个
int count=0, lastcount=0;//计数取了几次
cin >> n;//读入n
for (int i = 1; i <= n; i++) {//读入数列
a[i] = i;
}
while (num<n)
{
count++;//记录第几次操作
for (i = 1; i <= n - num; i = i + 2) {//跳着取数
if (a[i] == n) {//如果取到最后一位,记录次数
lastcount = count;
}
//取完后,移位
for (j = i + 1; j <= n - num; j++) {
a[j - 1] = a[j];
}
num++;//取到数的个数更新
a[j-1] = 0;//移完位后,最后一位赋值0;
//i = i-1;
}
}
cout << count << " " << lastcount;
return 0;
}
评论:
请先登录,才能进行评论