ps:我的天...看网上各种难..对于我这个比较懒得人...我就找规律直接水过去了...前20一个循环,注意跳过第一轮的3个数就行..然后觉得比较坑的是,那个输入N,要用long long型...

代码:

#include "stdio.h"
int dp1[]={1,2,6};
int dp[]={32,52,56,20,72,72,56,60,12,92,56,0,52,12,56,40,92,32,56,80};
int main(){
    int T,i,k;
    long long n;
    while(~scanf("%d",&T) && T){
        k=1;
        while(T--){
            scanf("%lld",&n);        
            if(n<=2){
                printf("Case %d: %d\n",k++,dp1[n]);
            }
            else if(n>2 && n<20){
                printf("Case %d: %d\n",k++,dp[n]);
            }
            else{
                printf("Case %d: %d\n",k++,dp[n%20]);
            }
        }
        puts("");
    }
    return 0;
}