Rightmost Digit
来源:互联网 发布:mac 邮件 编辑:程序博客网 时间:2024/06/11 10:40
Given a positive integer N, you should output the most right digit of N^N.
Each test case contains a single positive integer N(1<=N<=1,000,000,000).
234
76
In the first case, 3 * 3 * 3 = 27, so the rightmost digit is 7.In the second case, 4 * 4 * 4 * 4 = 256, so the rightmost digit is 6.题目很好理解:求N的N次方的个位数。有多种做法:
第一种直接暴力,数太大,GG,想都不用想肯定会超时,运行WA
#include<bits/stdc++.h>//错误做法 using namespace std;int main(){int n;int x;int sum=0;while(cin>>n){cin>>x; sum=pow(x,x); sum=sum%10;cout<<sum<<endl;} return 0;}第二种找规律:
rdigit = 1 4 7 6 5 6 3 6 9 0 1 6 3 6 5 6 7 4 9 0 1 4 7 6 5 6 3 6 9 0 ...
*#include <stdio.h>#include<iostream>using namespace std;int rdigit[25] = {0,1,4,7,6,5,6,3,6,9,0,1,6,3,6,5,6,7,4,9,0};int main (){ int T , n ; cin>>T; while (T -- ) { cin>>n; printf ( "%d\n" , rdigit[n%20] ) ; } return 0 ;}
#include <iostream>#include <cstdio>using namespace std;int mod_exp(int a, int b, int c) //快速幂取余a^b%c{ int res, t; res = 1 % c; t = a % c; while (b) { if (b & 1) { res = res * t % c; } t = t * t % c; b >>= 1; } return res;}int main(){ int T; cin >> T; while (T--) { int n; cin >> n; cout << mod_exp(n, n, 10) << endl; } system("pause"); return 0;}
阅读全文
0 0
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- Rightmost Digit
- LINUX6 上搭建DNS服务
- php 删除服务器指定目录图片
- c++ 自己的计划和想法
- Beautiful Soup使用介绍
- C3D-tensorflow(1)
- Rightmost Digit
- GPU环境搭建完后重启Ubuntu系统,无限登录问题
- (收藏)slf log4j logback
- vue-cli#2.0 webpack 配置分析
- PDF如何加密?Adobe加密PDF操作步骤分享
- UFLDL教程的卷积神经网络(CNN)实现
- Java线程的中断
- 站长如何选择免备案虚拟主机空间
- 51Nod 1136 欧拉函数