80分求解

P1010 [NOIP1998 普及组] 幂次方

@[x1007](/user/1109270) 问题不大,就是 **76**行输入错了,改了就AC了```cpp #include<stdio.h> int main(void) { int k[15] = {0}; int n, i; int num = 0; scanf("%d", &n); for(i = 0; n != 1; i++) { if(k[i] = n % 2) num++; n /= 2; } k[i] = 1; for(int j = i; j >= 0; j--) { switch(j) { case 0: if(k[j]) printf("2(0)"); break; case 1: if(k[j])printf("2"); break; case 2: if(k[j]) printf("2(2)"); break; case 3: if(k[j]) printf("2(2+2(0))"); break; case 4: if(k[j]) printf("2(2(2))"); break; case 5: if(k[j]) printf("2(2(2)+2(0))"); break; case 6: if(k[j]) printf("2(2(2)+2)"); break; case 7: if(k[j]) printf("2(2(2)+2+2(0))"); break; case 8: if(k[j]) printf("2(2(2+2(0)))"); break; case 9: if(k[j]) printf("2(2(2+2(0))+2(0))"); break; case 10: if(k[j]) printf("2(2(2+2(0))+2)"); break; case 11: if(k[j]) printf("2(2(2+2(0))+2+2(0))"); break; case 12: if(k[j]) printf("2(2(2+2(0))+2(2))"); case 13: if(k[j]) printf("2(2(2+2(0))+2(2)+2(0))"); break; case 14: if(k[j]) printf("2(2+2(0))+2(2)+2"); break; } if(k[j] && num != 0) { printf("+"); num--; } } return 0; } ```
by lix_qaq @ 2024-04-14 11:37:38


@[lix_qaq](/user/1056563) 我属实没看懂。要不你点一下上面第十五个图标?
by x1007 @ 2024-04-14 19:15:32


|