OpenJudge百炼-2747-数字方格-C语言-枚举

描述:

如上图,有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最大。
输入:
一行,包含一个整数n (0 <= n <= 100)。
输出:
一个整数,即a1 + a2 + a3的最大值。
样例输入:
3
样例输出:

5

/**********************************************************  
**Copyright (c) 2017-11-20   
**创建人:suway  
**日期:20171120  
***********************************************************/  
#include <stdio.h>  
int main()  
{  
    int n,a1,a2,ans;  
    scanf("%d",&n);  
    for(ans = 3*n/5*5;;ans -= 5)  
        for(a1 = 0;a1 <= n;a1++)  
            if(!((ans - a1) % 3))  
                for(a2 = 0;a2 <= n;a2++)  
                    if(!((a1 + a2) % 2) && (ans - a1 - a2) >= 0 && (ans - a1 - a2) <= n)  
                    {  
                        printf("%d",ans);  
                        return 0;  
                    }  
}  
原文地址:https://www.cnblogs.com/suway/p/7866198.html