```cpp
for(int j=0;j<=i;j++) {
if(b[j]!=0){
cout<<pow(2,j)<<" ";
}
}
```
by lsj2009 @ 2021-12-26 14:34:26
@[lsj2009](/user/468657)
用你的反而还是WA
by skyark1214 @ 2021-12-26 14:38:03
@hezikai1214 是我的错了
by lsj2009 @ 2021-12-26 14:38:55
@[lsj2009](/user/468657) 那咋搞
by skyark1214 @ 2021-12-26 14:39:27
这份代码之所以错误,是因为``pow``的精度问题
by lsj2009 @ 2021-12-26 14:39:34
建议手写``pow``
by lsj2009 @ 2021-12-26 14:39:59
@[lsj2009](/user/468657) 手写?!
我***********
by skyark1214 @ 2021-12-26 14:41:08
还有,最好学习正解 $log_2^n$算法,而非是 $nlog2^n$算法,这哪怕快速幂优化后,时间复杂度仍旧 $nlog_2^{log_2^n}$
by lsj2009 @ 2021-12-26 14:41:48
$O(n)$幂
```cpp
int power(int a,int b) { //a^b
int ans=1;
while(b--) ans*=a;
return ans;
}
```
$O(log_2^n)$幂
```cpp
int power(int a,int b) { //a^b
int ans=1;
do {
if(b&1)
ans*=base;
base*=base
}while(b>>=1);
return ans;
}
```
by lsj2009 @ 2021-12-26 14:44:18
@[skyark1214](/user/577422)
by lsj2009 @ 2021-12-26 14:44:33