1 条题解
-
1
#include<bits/stdc++.h> using namespace std; int m,sum=1,a[100005]; int main() { cin>>m; while(m>0)//核心 { m%2==0?a[sum]=m/2:a[sum]=m/2+1;//这一坨等价于if(m%2==0) a[sum]=m/2; else a[sum]=m/2+1; m/=2;//分治,防止死循环; sum++; } sum--;//sum会多出1 sort(a+1,a+sum+1);//排序 cout<<sum<<endl; for(int i=1;i<=sum;i++) cout<<a[i]<<" "; //愉快输出 return 0; }
- 1
信息
- ID
- 1192
- 时间
- 1000ms
- 内存
- 162MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 21
- 已通过
- 8
- 上传者