时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
一个很简单的问题,求1p+2p+3p+……+np的和。
输入
第一行单独一个数字t表示测试数据组数。接下来会有t行数字,每行包括两个数字n,p,
输入保证0<n<=1000,0<=p<=1000。
输出
输出1p+2p+3p+……+np对10003取余的结果,每个结果单独占一行。
样例输入
2
10 1
10 2
样例输出
55
385
代码
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
ArrayList<B> arr = new ArrayList<>();
int number = cin.nextInt();
for (int i = 0; i < number; i++) {
int a = cin.nextInt();
int b = cin.nextInt();
arr.add(new B(a, b));
}
for (int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i).r);
}
cin.close();
}
}
class B {
public int r = 0;
public B(int a, int b) {
for (int i = 1; i <= a; i++) {
int sum = 1;
for (int j = 1; j <= b; j++) {
sum *= i;
if (sum >= 10003)
sum = sum % 10003;
}
r += sum;
if (r >= 10003)
r = r % 10003;
}
}
}