マシンガイドの2のべき乗次数を再試行
上海交通大学の再試験に合格
137=2(2(2)+2+2(0))+2(2+2(0))+2(0)
137=2(2(2)+2+2(0))+2(2+2(0))+2(0)
#include
void put(int num, int n);
int main()
{
int num;
scanf("%d", &num);
put(num, 0);
return 0;
}
void put(int m, int n)
//m ,n ,r 。
{
int r;
if (m == 0)//m ,
{
return;
}
r = m % 2;
m = m / 2;
put(m, n + 1);
if (m != 0 && r != 0)
// m 0 r 0 2 , +
{
printf("+");
}
if (r == 1)
{
if (n == 0)
{
printf("2(0)");
}
else if (n == 1)
{
printf("2");
}
else if (n == 2)
{
printf("2(2)");
}
else
{
printf("2(");
put(n, 0);
// 2(0),2,2(2)
printf(")");
}
}
}