洛谷 p1010 幂次方
程序员文章站
2022-07-11 19:38:50
#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; }
上一篇: 金银花和枸杞的作用和功效有哪些
下一篇: 大话算法-排序-冒泡排序