진급 귀속의 2의 멱차방 표시

3307 단어 YTU
Do more with less
                          2 
                Time Limit: 1 Sec  Memory Limit: 64 MB

Description


어떤 정수든지 2의 멱차방으로 표시할 수 있다.예를 들어 137=27+23+20과 동시에 약정방차는 괄호로 표시한다. 즉, ab는 a(b)로 표시할 수 있다.이로써 알 수 있듯이 137은 2(7)+2(3)+2(0) 진일보: 7=22+20(21은 2로 표시) 3=2+20 그래서 마지막 137은 2(2)+2(0)+2(2+2(0)+2(0))+2(0)+2(0) 또는: 1315=210+28+25+2+1 그래서 1315는 마지막으로 2(2(2(2+2(0)+2)+2(2(2+2(0)))+2(2(2)+2(0)+2(0)+2(0)로 표시할 수 있다.

Input


정수 n (n≤20000)

Output


한 줄, 약정에 부합되는 n의 0, 2는 (표시에 공백이 있을 수 없음) 을 나타낸다.

Sample Input


137

Sample Output


2(2(2)+2+2(0))+2(2+2(0))+2(0)

생각

 N   2^n + m     n,m 。
#include
int num;
void fun(int n)
{
    int i = 0;
    int sum = 1;
    if(n == 0)
        return ;
    if(n == 1)
    {
        printf("2(0)");    // 1 2 
        return ;
    }
    if(n == 2)
    {
        printf("2");      // 2 
        return ;
    }
    while(2*sum <= n)
    {
        i ++;
        sum = 2*sum;
    }
    printf("2");
    if(i != 1)
    {
        printf("(");
        fun(i);
        printf(")");
    }
    if(n - sum != 0)
        printf("+");
    fun(n - sum);
}
int main()
{
    int n;
    num = 0;
    scanf("%d",&n);
    if(n == 0)
    {
        printf("%d",n);
        return 0;
    }
    fun(n);
    return 0;

}

좋은 웹페이지 즐겨찾기