[HDU6298]Maximum Multiple【打表找规律】

6298 Maximum Multiple

看上去十分难,但是你会发现很容易出现-1,所以不妨打表找规律,表一打出来就完事了,发现只有在n%4==0||n%3==0的情况下才有解,最大解是多少呢?

对于n%4==0的情况:MAX=2(n4)3
对于n%3==0的情况:MAN=(n3)3

所以说要勤打表,打表出省一。

#include<bits/stdc++.h>
using namespace std;
int T;
long long n;
int main(){
    scanf("%d",&T);
    while (T--){
        scanf("%lld",&n);
        if (!(n%3)){
            long long tmp=n/3;
            printf("%lld\n",tmp*tmp*tmp);
        }else if (!(n%4)){
            long long tmp=n/4;
            printf("%lld\n",tmp*tmp*2*tmp);
        }else printf("-1\n");
    }
    return 0;
}
posted @ 2018-07-24 13:11  XSamsara  阅读(109)  评论(0编辑  收藏  举报