• codevs 2866 天平系统2


    题目描述 Description

    一个天平,砝码分别为1g、3g、9g、27g、...、6561g,每个砝码只有一个,要称重的物品放在天平的左侧,而砝码允许放在天平的左右两侧。已知一个物品的重量,问如何称重?试编程解决。

    输入描述 Input Description

    一个重量N

    输出描述 Output Description

    所使用的砝码重量,按从大到小的顺序输出。其中与物品异侧的砝码用正号表示,与物品同侧的砝码用负号表示。(第一个砝码前的正号要省略)

    样例输入 Sample Input

    15

    样例输出 Sample Output

    27-9-3

    数据范围及提示 Data Size & Hint

    (1≤N≤10000)

    思路:

    将n处理成3进制的形式,然后如果第i位是2,则第i位变为-1,i+1位+1;

    如果第i位是3,则第i位变成0,i+1位+1。

    代码:

    #include<cstdio>
    using namespace std;
    int a[10],n,b[100001],tot;
    void zh(int x)
    {
        while(x)
        {
            tot++;
            b[tot]=x%3;
            x/=3;
        }
    }
    int main()
    {
        int i,j;
        a[1]=1;
        for(i=2;i<=9;i++)
          a[i]=3*a[i-1];
        scanf("%d",&n);
        zh(n);
        for(i=1;i<=tot;i++)
          if(b[i]==2)
            b[i]=-1,b[i+1]++;
          else
            if(b[i]==3)
              b[i]=0,b[i+1]++;
        while(b[tot]!=0)
          tot++;
        tot--;
        printf("%d",a[tot]*b[tot]);
        for(i=tot-1;i>=1;i--)
        {
            if(b[i]>0)
              printf("+");
            if(b[i]!=0)
                 printf("%d",a[i]*b[i]);
        }
        return 0;
    }
  • 相关阅读:
    PageRank
    Map-Reduce基础
    Docker Hadoop LAMP安装配置教程
    HDFS Architecture
    Goole Search Auto Complete
    TopK-微博今日热门话题
    Hadoop开发环境搭建
    文本数据挖掘 Matrix67: The Aha Moments
    神经风格转换Neural Style Transfer a review
    神经风格转换 (Neural-Style-Transfer-Papers)
  • 原文地址:https://www.cnblogs.com/jyhywh/p/6044579.html
Copyright © 2020-2023  润新知