Codeforces Round #383 (Div. 2) A.Arpa’s hard exam and Mehrdad’s naive cheat【循环节/快速幂】

本文介绍了一种快速计算1378^n的末位数字的方法,通过寻找循环节或使用快速幂算法解决编程竞赛中的数学问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A. Arpa’s hard exam and Mehrdad’s naive cheat
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

There exists an island called Arpa’s land, some beautiful girls live there, as ugly ones do.

Mehrdad wants to become minister of Arpa’s land. Arpa has prepared an exam. Exam has only one question, given n, print the last digit of 1378n.

Mehrdad has become quite confused and wants you to help him. Please help, although it's a naive cheat.

Input

The single line of input contains one integer n (0  ≤  n  ≤  109).

Output

Print single integer — the last digit of 1378n.

Examples
Input
1
Output
8
Input
2
Output
4
Note

In the first example, last digit of 13781 = 1378 is 8.

In the second example, last digit of 13782 = 1378·1378 = 1898884 is 4.


题目大意:

求1378^n%10的值。


思路:


1、寻找循环节,但是别忘了n==0的情况,或者直接用快速幂的方式。


Ac代码:

#include<stdio.h>
#include<string.h>
using namespace std;
#define ll __int64
long long int kuaisumi(long long int a,long long int b,int mod)
{
    long long int tmp=a%mod;
    long long int ans=1;
    int n=b;
    while(n)
    {
        if(n%2==1)
        {
            ans=(ans*tmp)%mod;
            n-=1;
        }
        else
        {
            tmp=(tmp*tmp)%mod;
            n/=2;
        }
    }
    return ans;
}
int main()
{
    ll n;
    while(~scanf("%I64d",&n))
    {
        printf("%I64d\n",kuaisumi(1378,n,10));
    }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值