HDOJ-ACM1061(JAVA) Rightmost Digit

题意:求n的n次方的个位数(1<=N<=1,000,000,000)
第一个最愚蠢的办法就是暴力破解,没什么意义,当然,还是实现来玩玩。
以下是JAVA暴力破解:
import java.io.BufferedInputStream;
import java.util.ArrayList;
import java.util.Scanner; public class Main { public static void main(String[] args) {
Scanner scan = new Scanner(new BufferedInputStream(System.in));
int m = scan.nextInt();
while(m--!=0){
int n = scan.nextInt();
double result = Math.pow(n, n);
System.out.println(result%10);
}
scan.close();
}
}
第二个思路是寻找规律:
规律:求取个位数,其实就等于 n的个位数的n次方,252^252 的个位数等于 2^252的个位数
另外: 无论n为多少,他的个位数是1-9,那么如 2 * 2 = 4 ; 2*4=8 ; 2*8 = 16 ; 2*16 = 32 ; 当 结果为 32 个位数为 2 , 那便开始了新一轮的 循环(2,4,8,6,2,4....)。
以下是JAVA实现:
import java.io.BufferedInputStream;
import java.util.ArrayList;
import java.util.Scanner; public class Main { public static void main(String[] args) {
Scanner scan = new Scanner(new BufferedInputStream(System.in));
int m = scan.nextInt();
while(m--!=0){
int n = scan.nextInt();
int rightMostDigitOfN = n%10;
ArrayList<Integer> rightMostDigits = arrays.get(rightMostDigitOfN);
int size = rightMostDigits.size();
if(size == 1){
System.out.println(rightMostDigitOfN);
}else{
System.out.println(rightMostDigits.get((n-1)%size));
}
}
scan.close();
} static ArrayList<ArrayList<Integer>> arrays = getRightMostDigitArray(); static ArrayList<ArrayList<Integer>> getRightMostDigitArray(){
ArrayList<ArrayList<Integer>> arrays = new ArrayList<>();
for(int i = 0 ; i != 10 ; i ++){
ArrayList<Integer> integers = new ArrayList<>();
integers.add(i);
int n = 2;
while(true){
int rightMostDigit = (int) (Math.pow(i, n)%10);
if(rightMostDigit==i){
break;
}else{
integers.add(rightMostDigit);
}
n++;
}
arrays.add(integers);
}
return arrays;
} }
HDOJ-ACM1061(JAVA) Rightmost Digit的更多相关文章
- 【HDOJ】1061 Rightmost Digit
这道题目可以手工打表,也可以机器打表,千万不能暴力解,会TLE. #include <stdio.h> #define MAXNUM 1000000001 ][]; int main() ...
- hdoj 1061 Rightmost Digit【快速幂求模】
Rightmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDOJ 1061 Rightmost Digit(循环问题)
Problem Description Given a positive integer N, you should output the most right digit of N^N. Input ...
- HDOJ 1061 Rightmost Digit
找出数学规律 原题: Rightmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
- Rightmost Digit
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
- 快速幂 HDU 1061 Rightmost Digit *
Rightmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDU 1061 Rightmost Digit --- 快速幂取模
HDU 1061 题目大意:给定数字n(1<=n<=1,000,000,000),求n^n%10的结果 解题思路:首先n可以很大,直接累积n^n再求模肯定是不可取的, 因为会超出数据范围, ...
- Rightmost Digit(快速幂+数学知识OR位运算) 分类: 数学 2015-07-03 14:56 4人阅读 评论(0) 收藏
C - Rightmost Digit Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- Rightmost Digit(快速幂)
Description Given a positive integer N, you should output the most right digit of N^N. ...
随机推荐
- Logback 简单使用
1.Logback为取代log4j而生 Logback是由log4j创始人Ceki Gülcü设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- cl ...
- sencha touch json store
js: Ext.define('MyApp.store.MyJsonStore', { extend: 'Ext.data.Store', requires: [ 'MyApp.model.Perso ...
- Python属性、方法和类管理系列之----描述符类
什么是描述符类? 根据鸭子模型理论,只要具有__get__方法的类就是描述符类. 如果一个类中具有__get__和__set__两个方法,那么就是数据描述符,. 如果一个类中只有__get__方法,那 ...
- Linux系统架设支持自助开通Shado wsocks及VPN前端的教程
程序实现:通过网页端注册,自助开通VPN帐号及Shadowsocks帐号.并可实现流量统计 系统要求 Debian 6 x64 纯净系统 by: Lop ①配置环境 apt-get updateapt ...
- 换一换js
(function(){ var tit = $("#changes"), con = $("#wday>ul"), page = con.length, ...
- ORMBase对象/关系型数据库映射在MVC中的应用
ORM这个字眼在我们操作数据库的时候,是我们使用频率最高的.它到底是个什么东西呢,我们先来看看一些对它的含义解释. 对象/关系数据库映射(object/relational mapping(ORM)) ...
- c++学习之旅-Cygwin+Eclipse ide for c++
一,cygwin下载完毕后配置系统环境片两path指向cygwin/bin 二,eclipse设置 2.1 设置工作目录的cygwin映射 cygwin/d ->d:\ 2.2设置编译 下面新建 ...
- Item Import: What Does "Sync" Items Do? (Doc ID 417887.1)
In this Document Goal Solution APPLIES TO: Oracle Item Master - Version 11.5.10.0 to 11.5.10.0 [Rele ...
- jQuery功能一览
// Hello world!"); }); $("#btn5").click(function(){ $("#test5").val("D ...
- bzoj3878
当初只会暴力,现在差不多觉得水了显然离线处理,对输入的数排序然后会发现不管怎么修改都是结果总是单调不降的对于每次处理,我们只要找到那段越界的即可显然上线段树,话说jsoi这么喜欢线段树?下面在bzoj ...