查找演唱会时长最小差值的C++代码


假设我们有三个数字a、b和c。一位歌手有'a'首一分钟的歌曲,'b'首两分钟的歌曲和'c'首三分钟的歌曲。他想要将所有歌曲分成两场演唱会,每首歌曲都必须包含在恰好一场演唱会中。他想要使两场演唱会时长的绝对差值尽可能小。演唱会时长是所有歌曲时长的总和。我们必须找到演唱会时长之间可能的最小差值。

因此,如果输入像a = 2;b = 1;c = 3,那么输出将是1,因为他可以将两首一分钟的歌曲、一首两分钟的歌曲和一首三分钟的歌曲包含在第一场演唱会中,并将两首三分钟的歌曲包含在第二场演唱会中。第一场演唱会时长将是1 + 1 + 2 + 3 = 7,第二场演唱会时长将是6。它们的差值是|7 − 6| = 1。

步骤

为了解决这个问题,我们将遵循以下步骤:

return (a + (1 if c is odd, otherwise 0))

示例

让我们来看下面的实现以更好地理解:

#include<bits/stdc++.h>
using namespace std;
int solve(int a, int b, int c){
   return (a+c&1);
}
int main(){
   int a = 2;
   int b = 1;
   int c = 3;
   cout << solve(a, b, c) << endl;
}

输入

2, 1, 3

输出

1

更新于:2022年3月15日

179次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告