查找演唱会时长最小差值的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
广告