51Nod 1004 n^n的末位数字(日常复习快速幂,莫名的有毒,卡mod值)

1004 n^n的末位数字

题目来源: Author Ignatius.L (Hdu 1061)

基准时间限制:1 秒 空间限制:131072 KB 分值: 5

难度:1级算法题

给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。

Input

一个数N(1 <= N <= 10^9)

Output

输出N^N的末位数字

Input示例

13

Output示例

3

题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1004

分析:快速幂第二题,莫名的奇妙,mod的值卡在1e7,我也是无语了,写了个1e9+7,样例都过不了,写个1e60,连续WA,这肯定是在卡数据!
下面给出AC代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const ll mod=1e7;
 5 ll qpow(ll x,ll p)
 6 {
 7     ll ret=1;
 8     for(;p;p>>=1,x=x*x%mod)
 9     {
10         if(p&1)
11             ret=ret*x%mod;
12     }
13     return ret;
14 }
15 int main()
16 {
17     ll x;
18     cin>>x;
19     ll p=x;
20     ll ans=qpow(x,p);
21     cout<<ans%10<<endl;
22 }
时间: 2024-10-10 01:18:09

51Nod 1004 n^n的末位数字(日常复习快速幂,莫名的有毒,卡mod值)的相关文章

51Nod - 1004 n^n的末位数字

51Nod - 1004 n^n的末位数字 给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字. Input 一个数N(1 <= N <= 10^9) Output 输出N^N的末位数字 Input示例 13 Output示例 3 题解: 末尾数字,所以在快速迭代幂的时候,只需要考虑末尾数字即可. #include <iostream> #include <cstdio> #include <cstdlib> #include <cstri

51nod 1004 n^n的末位数字【快速幂】

1004 n^n的末位数字 题目来源: Author Ignatius.L (Hdu 1061) 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字. Input 一个数N(1 <= N <= 10^9) Output 输出N^N的末位数字 Input示例 13 Output示例 3 [代码]: #include <bits/stdc++.h> using namespac

nod_1004 n^n的末位数字(二分快速幂)

题意: 给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字. Input 一个数N(1 <= N <= 10^9) OutPut 输出N^N的末位数字 思路: EASY,,,,,, 代码: int calc(int t,int n){ if(n==0) ret 1; if(n==1) ret t; int s=calc(t,n/2); s=s*s%10; if(n&1){ s=s*t%10; } ret s; } int main(){ int n; cin>>

1004 n^n的末位数字

题目来源: Author Ignatius.L (Hdu 1061) 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字. Input 一个数N(1 <= N <= 10^9) Output 输出N^N的末位数字 Input示例 13 Output示例 3 幂尾数的循环节为4!学到了新姿势~ 知道这个点就直接刚就好. 附AC代码: 1 #include<iostream> 2 #inclu

51Nod 1046 A^B Mod C(日常复习快速幂)

1046 A^B Mod C 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!prob

n^n的末位数字

题目描述: 给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字. Input 一个数N(1 <= N <= 10^9) Output 输出N^N的末位数字 首先观察下,可以得出N依次递增时的末尾数字是有规律的,即每20个数为一个循环,{1,4,7,6,5,6,3,6,9,0,1,6,3,6,5,6,7,4,9,0},下面就好做了. 代码如下: 1 #include<stdio.h> 2 int main (void) 3 { 4 int a[20] = {1,4,7,6

【 OJ 】末位数字

末位数字 发布时间: 2017年11月12日 20:19   最后更新: 2017年11月12日 20:20   时间限制: 1000ms   内存限制: 128M 描述 给定一个整数n, 求n的n次方的十进制表示的末位数字.(1 <= n <= 1e9); 输入 输入包括若干组测试数据, 以0结束, 0不需要处理. 输入的每一行包括一个整数n. 测试数据数量不大于1e6: 输出 对于输入的每一个n, 在一行中输出一个整数, 表示所要求的末位数字. 样例输入1 3 0 样例输出1 源码 有点水

5北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第一位数字不是0.校外电话又分为本市电话和外地电话两类。拨校外电话需要先拨0,若是本市电话则接着拨8位数字(第一位不是0),若是外地电话则拨3位区码后再拨8位电话号码(第一位不是0)。

答: 电话号码=[校内电话号码|校外电话号码] 校内电话号码=非零数字+3位数字 校外电话号码=[本市号码|外地号码] 本市号码=数字零+8位数字 外地号码=数字零+3位数字+8位数字 非零数字=[1|2|3|4|5|6|7|8|9] 数字零=0 3位数字=3{数字}3 8位数字=非零数字+7位数字 7位数字=7{数字}7 数字=[0|1|2|3|4|5|6|7|8|9] 其中,[ ]意思是或,从校内电话号码或校外电话号码中选择一个:{ }表示重复,两边的数字表示重复次数的下限和上限:=意思是定

js验证连续两位数字递增或递减和连续三位数字相同

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body><form method="post" class="form-horizontal" role="form" action=&q