AT_arc115_c题解
Fa_Nanf1204 · · 题解
算法思路:数学
分析
这题代码不难,主要是思路。我们可以手推一下这个序列情况。
要求每个数最小,那么
再看
再看
再看
以此类推。
扩展这个序列,可以得到:
结论
可以得出结论:数字
代码
#include<bits/stdc++.h>
using namespace std;
int n,cnt=0,j=0;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
j++;//计数当前数出现了几次
if (j<=pow(2,cnt)){//判断数量是否符合要求
cout<<cnt+1<<" ";//输出
}
else{
j=1;//重新计数
cnt++;
cout<<cnt+1<<" ";//输出
}
}
return 0;
}