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 <cstring>
using namespace std;  

int main(){
	int n, cnt, ans;
	while(scanf("%d", &n) != EOF){
		cnt = n;
		ans = 1;
		n = n % 10;
		while(cnt){
			if(cnt%2 == 1){
				ans = (ans * n) % 10;
			}
			n = n * n % 10;
			cnt = cnt / 2;
		}
		printf("%d\n", ans%10 );
	}
	return 0;
}

  

时间: 2024-12-10 07:15:17

51Nod - 1004 n^n的末位数字的相关文章

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#!pr

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

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

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

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>>

【 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

北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成

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