sh073分硬币

Posted iuppiter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh073分硬币相关的知识,希望对你有一定的参考价值。

总时间限制:10000ms
单个测试点时间限制:1000ms
内存限制:65536kB

描述:

徐老师口袋里面有7枚硬币,他要将这些硬币分给秦立伦和夏天呈,使得两人得到的钱的差值最小(不然他俩会因为分得不均而打架)。每枚硬币的面值范围是1分到100分,不允许将一枚硬币分开。

 

输入:

输入仅一行,包含以空格分隔的 7 个正整数,表示每枚硬币的面值

 

输出:

输出一个正整数或 0,表示两人所分到钱的最小差值

 

样例输入:

2 5 7 9 11 8 23

 

样例输出:

1

AC代码:(暴力)

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
#define ABS(a) ((a) >= 0 ? (a) : (-(a)))
#define MIN(a, b) ((a) < (b) ? (a) : (b))

int main() {
    int f = 0;
    int p1 = 0;
    int p2 = 0;
    int answer = 2147483647;
    int m[7];
    for(int i = 0; i < 7; ++i) {
        std::cin >> m[i];
    }
    for(int i = 0; i < 256; ++i) {
        for(int j = 0; j < 7; ++j) {
            if(((1 << (j - 1)) & i))
                p1 = p1 + m[j];
            else
                p2 = p2 + m[j];
        }
        answer = MIN(answer, ABS(p1 - p2));
        p1 = 0;
        p2 = 0;
    }
    printf("%d", answer);
    return 0;
}

 

以上是关于sh073分硬币的主要内容,如果未能解决你的问题,请参考以下文章

CSDN|每日一练硬币划分

CSDN|每日一练硬币划分

习题4-5 换硬币 (20分)

PTA 7-1 换硬币 (20分)

sh Bash的代码片段

Python第4章-15 换硬币 (20分)