HDOJ-ACM1097(JAVA) A hard puzzle
Posted xiezie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDOJ-ACM1097(JAVA) A hard puzzle相关的知识,希望对你有一定的参考价值。
这道题就是HDOJ的1061的变形:
1061 :求n的n次方的个位数 http://www.cnblogs.com/xiezie/p/5596779.html
1097 :求n的m次方的个位数
因此,就不在这里赘述了
以下是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)); while(scan.hasNext()){ int n = scan.nextInt(); int m = 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((m-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-ACM1097(JAVA) A hard puzzle的主要内容,如果未能解决你的问题,请参考以下文章
人生第一个快速幂的题(HDU - 1097--A hard puzzle )