@[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