测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题