package com.demo2;
import java.util.Scanner;
/*
* 求A^B的最后三位数表示的整数。
说明:A^B的含义是“A的B次方”
*/
public class HDU_oj2035 {
public static void main(String[] args) {
Scanner sn = new Scanner(System.in);
while (sn.hasNext()) {
int A = sn.nextInt() % 1000; // 先取模,使得数据变小
int B = sn.nextInt();
if (A == 0 && B == 0)
break;
int ans = 1;
while (B != 0) {
ans = ans * A; //次方
ans = ans % 1000;//一直取模相乘 与相乘结果做后取模,一致
B--;
}
System.out.println(ans);
}
sn.close();
}
}
顺便学了一些大数的知识点:
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.PriorityQueue;
import java.util.Queue;
public class Practice {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append(5);
sb.append("hello");
System.out.println(sb);
// 强大的反转 反转一切容器
sb.reverse();
System.out.println(sb);
// BigInteger类实现了任意精度的整数运算,BigDecimal类实现了任意精度的浮点运算
// 如果基本的整数和浮点数精度不能够满足需求,这两个类可以处理任意长度数字序列的数值
BigInteger a;
BigDecimal b;
Queue que = new PriorityQueue();
que.add(3);
que.add(5);
que.add(10);
que.add(7);
que.add(9);
que.add(15);
que.add(11);
System.out.println(que);
// 每一次都会自动建立小顶堆(堆排序)
// while(!que.isEmpty()) {
// System.out.print(que.poll()+ ",");
// }
int size = que.size(); //一定要事先先把size保存,因为每执行一步size都会减小一
for(int i = 0; i