数字方格

数字方格

如上图,有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最大。

时间限制:1000

内存限制:65536

输入

一行,包含一个整数n (0 <= n <= 100)。

输出

一个整数,即a1 + a2 + a3的最大值。

样例输入

3

样例输出

5
#include<bits/stdc++.h>
using namespace std;

int n,a[4],ans;
void fillNumber(int deep){
	for(int i=0;i<=n;i++){
		if(deep==4){
			if((a[1]+a[2])%2==0 && (a[2]+a[3])%3==0 && (a[1]+a[2]+a[3])%5==0){
				if(a[1]+a[2]+a[3]>ans){
					ans = a[1]+a[2]+a[3];
				}
			}
		}else{
			a[deep]=i;
			fillNumber(deep+1);
		}
	}
}

int main(){
	cin>>n;
	fillNumber(1);
	cout<<ans;
}
posted @ 2021-11-28 17:44  new-code  阅读(128)  评论(0编辑  收藏  举报