0
已解决
董宇昊
初级启示者
初级启示者
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = n - 1; i >= 1; i--) {
for (int j = n - 1; j >= 1; j--) {
for (int k = n - 1; k >= 1; k--) {
int a = i + j, b = j + k, c = i + k;
if (a % 2 == 0 && b % 3 == 0 && c % 5 == 0) {
cout << a + b + c << ' ' << a << ' ' << b << ' ' << c << endl;
return 0;
}
}
}
}
return 0;
}
1247 数字游戏
题目描述 Description
有三个数字a,b,c。已知0 <= a, b, c <= n,而且满足 a + b 是2的倍数,b + c 是3的倍数, a + c 是5的倍数。你的任务是找到一组a,b,c,使得a + b + c 的值最大。
输入描述 Input Description
一行,包含一个整数n (0 <= n <= 100)。
输出描述 Output Description
输出一行,4个整数,第一个数为 a + b + c 的最大值,之后三个数分别是组成a+b+c最大时的a, b, c的值。每两个数之间用一个空格隔开。
样例输入 Sample Input
3
样例输出 Sample Output
6 3 1 2
0
已采纳
李秉轩
修练者
修练者
- cin>>n;
- for(int i=0;i<=n;i++){
- for(int j=0;j<=n;j++){
- for(int k=0;k<=n;k++){
- if((i+j)%2==0&&(k+j)%3==0&&(i+k)%5==0&&i+j+k>max){
- max=i+j+k;
- a=i;
- b=j;
- c=k;
- }
- }
- }
- }
- cout<<max<<' '<<a<<' '<<b<<' '<<c;
- //核心代码仅供参考
0
0
0
0
丁海洋
中级守护
中级守护
这题么~
0 <= a, b, c <= n枚举i,j,k时应该从0开始,n结束,你的循环的话应该都是 从n开始到0结束
然后a + b + c 的值最大,我觉得你应该没看见吧,这里是让我们求最大值的,所以你要将i,j,k加起来,用一个数存起来,再去与maxn比较,如果比maxn大,maxn就等于那个数 ,哦 ,i,j,k别忘了用数存哈!然后再输出就ok了
如还有问题评论即可
0