频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
"红色病毒"问题题解
2018-02-09 12:03:28         来源:HYH863677698的博客  
收藏   我要投稿

“红色病毒”问题

题目描述

医学界发现的新病毒因其蔓延速度和Internet上传播的”红色病毒”不相上下,被称为”红色病毒”,经研究发现,该病毒及其变种的DNA的一条单链中,胞嘧啶,腺嘧啶均是成对出现的。

现在有一长度为N的字符串,满足一下条件:

(1) 字符串仅由A,B,C,D四个字母组成;

(2) A出现偶数次(也可以不出现);

(3) C出现偶数次(也可以不出现);

计算满足条件的字符串个数.

当N=2时,所有满足条件的字符串有如下6个:BB,BD,DB,DD,AA,CC.

由于这个数据肯能非常庞大,你只要给出最后两位数字即可.

Input

每组输入的第一行是一个整数T,表示测试实例的个数,下面是T行数据,每行一个整数N(1<=N<2^64),当T=0时结束.

Output

对于每个测试实例,输出字符串个数的最后两位,每组输出后跟一个空行.

Sample Input

4

1

4

20

11

3

14

24

6

0

Sample Output

Case 1: 2

Case 2: 72

Case 3: 32

Case 4: 0

Case 1: 56

Case 2: 72

Case 3: 56


思路:

找到规律Kn = 2 * 4^(n-1) - 2 ^ ( n-1),打表。


代码

#include 
int pow_mod(int a, long long b, int m)//a^b mod m
{
    if (b == 0) return 1;
    int x = pow_mod(a, b / 2, m);
    long long ans = (long long)x*x % m;
    if(b % 2 == 1) ans = ans*a%m;
    return (int)(ans);
}
int main()
{
    int t,z;
    long long n;
    while (~scanf("%d", &t) && t)
    {
        int count = 0;
        while (t--)
        {
            scanf("%I64d", &n);
            z = (pow_mod(4, n - 1, 100) + pow_mod(2, n - 1, 100)) % 100;
            printf("Case %d: %d\n", ++count, z);
        }
        printf("\n");
    }
    return 0;
}
点击复制链接 与好友分享!回本站首页
上一篇:经典的找单词问题题解
下一篇:RPG的错排问题题解
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站