HDOJ-ACM2035(JAVA) 人见人爱A^B

Posted xiezie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDOJ-ACM2035(JAVA) 人见人爱A^B相关的知识,希望对你有一定的参考价值。

 

这道题的巧妙方法没有想出来,但是算是优化的暴力破解吧。Accepted

import java.io.BufferedInputStream;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(new BufferedInputStream(System.in));
        while(scan.hasNextInt()){
            int n = scan.nextInt();
            int m = scan.nextInt();
            if(n==0&&m==0){
                break;
            }
            int right3OfN = n%1000;
            int result = right3OfN;
            while(--m!=0){
                result = result*right3OfN%1000;
            }
            System.out.println(result);
        }
        scan.close();
    }
}

 

但是,发现了个问题

如果我把1-999的m次方可能的结果用静态容器保存起来时,结果就 Wrong Answer

没想通,有谁知道么?

以下是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.hasNextInt()){
            int n = scan.nextInt();
            int m = scan.nextInt();
            if(n==0&&m==0){
                break;
            }
            int right3OfN = n%1000;
            ArrayList<Integer> right3s = arrays.get(right3OfN);
            System.out.println(right3s.get((m-1)%right3s.size()));
        }
        scan.close();
    }

    static ArrayList<ArrayList<Integer>> arrays  = getRightMost3DigitArray();

    static ArrayList<ArrayList<Integer>> getRightMost3DigitArray(){
        ArrayList<ArrayList<Integer>> arrays = new ArrayList<>();
        for(int i = 0 ; i != 1000 ; i ++){
            ArrayList<Integer> integers = new ArrayList<>();
            int right3OfI = i; 
            integers.add(right3OfI);
            int right3 = right3OfI;
            while(true){
                right3 = right3 * right3OfI%1000;
                if(integers.contains(right3)){
                    break;
                }else{
                    integers.add(right3);
                }
            }
            arrays.add(integers);
        }
        return arrays;
    }
}

以上是关于HDOJ-ACM2035(JAVA) 人见人爱A^B的主要内容,如果未能解决你的问题,请参考以下文章

杭电oj_2035——人见人爱A^B(java实现)

hdu 2035 人见人爱A^B

hdu 2035 人见人爱A^B

HDU_oj_2035 人见人爱A^B

hdu2035java

HDU 2034 人见人爱A-B