数学推演题目—不得不放弃、祝你元宵节快乐!

think:
1 面对这个题目,一开始可能会先考虑直接算,但是再分析就会发现一旦展开来算,估计内存和时间都会超,因此再分析时候有更合适的方法,发现其实题目只需要8^n的个位数字,这就意味着或许不用全部展开来算,再分析一下又发现第n位的个位数字只需要第n-1位的个位数字乘以8取余即可,这时候动笔写一写会发现这其实是规律的变化,如下
0->1
1->8
2->4
3->2
4->6
5->8

2因此其实只需额外考虑8^0这种情况,其余情况当n和4取余发现其实是规律性变化,有点体现了数学中的数学归纳法思想

sdut原题链接

不得不放弃、祝你元宵节快乐!
Time Limit: 1000MS Memory Limit: 65536KB

Problem Description
又到了一年一度的元宵节啦!一心想吃到汤圆的 cyk 看着 Stone 一碗又一碗地吃汤圆羡慕不已。
cyk 发现 Stone 吃汤圆是有规律的,第 n 碗内会有 8^n 个汤圆。Stone 看到 cyk 馋得不行,便决定送给他几个汤圆,其数量为自己碗里汤圆数量的个位数。
已知当前 Stone 正在吃第 n 碗,cyk 想知道自己能获得几个汤圆?

Input
多组输入,首先输入一行 T (1 <= T <= 1000),表示数据组数。
对于每组数据,输入一个整数 n (0 <= n <= 10^6)。

Output
对于每组数据,输出一行一个整数,代表答案。

Example Input
3
1
2
3

Example Output
8
4
2

Hint
n = 1 时,Stone 有 8^1 = 8 个汤圆,他会送出 8 个汤圆。
n = 2 时,Stone 有 8^2 = 64 个汤圆,他会送出 4 个汤圆。
n = 3 时,Stone 有 8^3 = 512 个汤圆,他会送出 2 个汤圆。

Author
「2017年寒假集训 阶段测试赛2 - 元宵节专场」不得不放弃、

以下为accepted代码

#include <stdio.h>
int main()
{
    int T, n;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d", &n);
        if(n == 0)
            printf("1\n");
        else
        {
            if(n % 4 == 1)
                printf("8\n");
            else if(n % 4 == 2)
                printf("4\n");
            else if(n % 4 == 3)
                printf("2\n");
            else if(n % 4 == 0)
                printf("6\n");
        }
    }
    return 0;
}


/***************************************************
User name: jk160630
Result: Accepted
Take time: 0ms
Take Memory: 108KB
Submit time: 2017-02-13 17:11:19
****************************************************/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值