zoukankan      html  css  js  c++  java
  • 砝码组合

    不要让你的执行频次超过10的九次方

    66.砝码组合 (15分)
    C时间限制:3000 毫秒 |  C内存限制:3000 Kb
    题目内容:
    用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。
    如果只有5个砝码,重量分别是1,3,9,27,81。
    则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。
    本题目要求编程实现:对用户输入的重量(1~121),
    给出砝码组合方案(用加减式表示,减代表砝码放在物品盘)。
    例如:
    输入:
    5
    输出:
    9-3-1
    输入:
    19
    输出:
    27-9+1
    要求程序输出的组合总是大数在前小数在后。
    输入描述
    用户输入的重量(1~121),
    输出描述
    给出砝码组合方案(用加减式表示,减代表砝码放在物品盘)。  

    代码如下:

    #include <stdio.h>
    #include <math.h>
    void solve(int *num, int x)
    {
        printf("%d", x);
        if (*num==1) return;
        else if (*num>0){
            if (*num<x) printf("-");
            else if(*num>x) printf("+");
            *num = *num-x;
        }
        else if (*num<0){
            if (*num<-x) printf("-");
            else if(*num>-x) printf("+");
            *num = *num+x;
        }
    }
    int main()
    {
        int num;
        scanf("%d", &num);
        while (num!=0) {
            int x = abs(num);
            if (x==1) solve(&num, 1);
            else if (1<x&&x<5) solve(&num, 3);
            else if (4<x&&x<14) solve(&num, 9)
            else if (13<x&&x<41) solve(&num, 27);
            else if(40<x&&x<121) solve(&num, 81);
        }
        
        return 0; 
    }
  • 相关阅读:
    学习
    素数环
    数独
    nyoj迷宫寻宝(一)
    Django H1 高级教程:如何编写可重用的应用
    Django L6 编写你的第一个Django应用
    Django L5 编写你的第一个Django应用
    Django L4 编写你的第一个Django应用
    Django L3 编写你的第一个Django应用
    Django L2 编写你的第一个Django应用
  • 原文地址:https://www.cnblogs.com/wizarderror/p/10645397.html
Copyright © 2011-2022 走看看