洛谷 p1010 幂次方
程序员文章站
2023-11-14 18:10:58
#include #include using namespace std; void dg(int n) { int a; if(n==0) return; for(int i=0;i<=15;i++) //求出n以内2最大的a次方 { a=i; if(pow(2... ......
#include <cstdio> #include <cmath> using namespace std; void dg(int n) { int a; if(n==0) return; for(int i=0;i<=15;i++) //求出n以内2最大的a次方 { a=i; if(pow(2,a)>n) { a--; break; } } if(a==0) printf("2(0)"); if(a==1) printf("2"); if(a>1) //当a大于1时进行递归 { printf("2("); dg(a); //使a次方用2的幂次方表示 printf(")"); } if(n!=pow(2,a)) //使减去最大2的a次方剩下的数用2的幂次方表示 { putchar('+'); dg(n-pow(2,a)); } } int main() { int n; scanf("%d",&n); dg(n); putchar('\n'); return 0; }
上一篇: 非后端开发Mysql日常使用小结
下一篇: JavaScript 数组排序