A46417. 数字方格
填空题
中等
知识点
题目描述
数字方格
题目描述
如上图,有3个 方格,每个方格里面都有一个整数a1,a2,a3。已知0 <= a1, a2, a3 <= n,而且a1 + a2是2的倍数,a2 + a3是3的倍数, a1 + a2 + a3是5的倍数。你的任务是找到一组a1,a2,a3,使得a1 + a2 + a3最大。
输入
输入的第一行是一个数t,表示测试数据的数目。接下来的t行,每行给出一个n (0 <= n <= 100)的值。
输出
对于每一个n的值,输出a1 + a2 + a3的最大值。
样例输入
2
0
3
样例输出
0
5
参考答案
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int ans=0;
for(int a1=0;a1<=n;a1++)//循环枚举所有组合
{
for(int a2=0;a2<=n;a2++)
{
if((a1+a2)%2==0)//先把部分不符合条件的情况排除,减少循环次数
{
for(int a3=0;a3<=n;a3++)
{
if((a2+a3)%3==0 && (a1+a2+a3)%5==0)//找到符合条件的组合
{
if(a1+a2+a3>ans)//打擂台求最大值
{
ans=a1+a2+a3;
}
}
}
}
}
}
cout<<ans<<endl;
return 0;
}
上一题
下一题