• 【 OJ 】幂次方


    幂次方

    参考:http://blog.csdn.net/clover_hxy/article/details/50178671

    任何一个正整数都可以用2的幂次方表示。例如

    137 = 2^7+2^3+2^0

    同时约定方次用括号表示, 即a^b可表示为a(b)。

    由此可知,137可表示为:

    2(7)+2(3)+2(0)

    进一步:7=2^2+2+2^0(2^1用2表示)

    3=2+2^0

    所有最后137可表示为:

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

    又如:

    1315=2^10+2^8+2^5+2+1

    所以1315最后可表示为:

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

    一个正整数n(n <= 20000)

    符合约定的n的0, 2表示(在表示中不能有空格)

    1315
    2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
    源码
     1 #include <stdio.h>
     2 
     3 int value[15] = {1,2,4,8,16,32,64,128,256,512,1024,
     4                     2048,4096,8192,16384};
     5 void get2(int n){
     6     int i;
     7     switch(n){
     8         case 0:
     9             printf("0");
    10             return;
    11         case 1:
    12             printf("2(0)");
    13             return;
    14         case 2:
    15             printf("2");
    16             return;
    17         default:
    18             for(i = 14; i >= 0; i--){
    19                 if(n >= value[i])
    20                     break;
    21             }
    22             if(i == 1)
    23                 printf("2");
    24             else{
    25                 printf("2(");
    26                 get2(i);
    27                 printf(")");
    28             }
    29             n -= value[i];
    30             while(n > 0){
    31                 for(i = 14; i >= 0; i--){
    32                     if(n >= value[i])
    33                         break;
    34                 }
    35                 if(i == 1)
    36                     printf("+2");
    37                 else{
    38                     printf("+2(");
    39                     get2(i);
    40                     printf(")");
    41                 }
    42                 n -= value[i];
    43             }
    44             return;
    45     }
    46 }
    47 int main(){
    48     int n;
    49     scanf("%d",&n);
    50     get2(n);
    51     return 0;
    52 }
    道阻且长,行则将至。
  • 相关阅读:
    Newtonsoft.Json.SerializeObject 转换参数
    EntityFramework Code First 特性
    删除SVN
    C# 数据库连接字符串
    javascript 计算后 无聊的小数点处理
    python index 自己实现
    springcloud 网关过滤器Zuul Filter
    Spring Cloud Feign服务通信与负载均衡机制
    Spring Cloid Ribbon服务的通信与负载均衡搭建
    spring-cloud注册中心集群
  • 原文地址:https://www.cnblogs.com/forfriendforfun/p/8030397.html
Copyright © 2020-2023  润新知