zoukankan      html  css  js  c++  java
  • 九度OJ 1095:2的幂次方 (递归)

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:913

    解决:626

    题目描述:

        Every positive number can be presented by the exponential form.For example, 137 = 2^7 + 2^3 + 2^0。

        Let's present a^b by the form a(b).Then 137 is presented by 2(7)+2(3)+2(0). Since 7 = 2^2 + 2 + 2^0 and 3 = 2 + 2^0 , 137 is finally presented by 2(2(2)+2 +2(0))+2(2+2(0))+2(0). 
     
        Given a positive number n,your task is to present n with the exponential form which only contains the digits 0 and 2.

    输入:

        For each case, the input file contains a positive integer n (n<=20000).

    输出:

        For each case, you should output the exponential form of n an a single line.Note that,there should not be any additional white spaces in the line.

    样例输入:
    1315
    样例输出:
    2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
    来源:
    2006年上海交通大学计算机研究生机试真题

    思路:
    需用递归来做,注意边界条件,2不应该被打印成2(0).


    代码:

    #include <stdio.h>
     
    void present(int n)
    {
        if (n == 0 || n == 2)
        {
            printf("%d", n);
            return;
        }
        int i;
        int a[20], c;
        for (i=0; n>0; i++)
        {
            a[i] = n%2;
            n /= 2;
        }
        c = i;
        for (i=c-1; i>=0; i--)
        {
            if (a[i] == 0)
                continue;
            if (i != c-1)
                printf("+");
            if (i == 1)
            {
                printf("2");
                continue;
            }
            printf("2(");
            present(i);
            printf(")");
        }
    }
     
    int main(void)
    {
        int n;
     
        while (scanf("%d", &n) != EOF)
        {
            present(n);
            printf("
    ");
        }
     
        return 0;
    }
    /**************************************************************
        Problem: 1095
        User: liangrx06
        Language: C
        Result: Accepted
        Time:0 ms
        Memory:912 kb
    ****************************************************************/


    编程算法爱好者。
  • 相关阅读:
    maven打包成jar文件与打包成tar.gz文件
    maven命令错误:-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME
    Nginx监听多个端口配置实例 Linux
    怎么修改redis-cli访问的地址
    eclipse的.properties文件中文显示问题
    Linux关闭防火墙命令red hat/CentOs7
    CentOS 7防火墙快速开放端口配置方法
    Window下Beego环境搭建和bee工具使用
    .netcore2.1 使用middleware对api请求头进行验证
    .netcore2.1 统一接口返回属性名称
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5083937.html
Copyright © 2011-2022 走看看