Problem C
Problem Description
Definite an operation work
(Q,x) as sequence Q from the first number on,keep the top x numbers and delete followed x numbers, keep the next x numbers and delete followed x numbers, then keep recycling this process.Q is the positive integer sequence, Given a sequence A, operating Work(Q,Ai) upon positive integer sequence output the nth member after n operations.
Input
First line contains
T(T≤10) denoting the number of test cases. T cases follows. For each cases: First line contains integer n(0<n≤10000), next line contains n integers Ai(0<Ai≤1000) indicates the i-th operation.
Output
For each case output the answer in one line.
Sample Input
2
3
1 2 3
3
3 2 1
Sample Output
9
15从后往前推出公式,但是会爆longlong,用java写就好了。
import java.io.*
;
import java.math.*
;
import java.util.*
;
public class Main {
static int[] a;
public static void main(String args[]) {
Scanner cin =
new Scanner(System.in);
int t =
cin.nextInt();
while(t-->0
) {
a =
new int[10010
];
int n =
cin.nextInt();
for(
int i = 1; i <= n; i++) a[i] =
cin.nextInt();
BigInteger ans =
BigInteger.valueOf(n);
for(
int i = n; i >= 1; i--
) {
int tmp = 0
;
if(ans.mod(BigInteger.valueOf(a[i])).compareTo(BigInteger.ZERO) == 0) tmp = 1
;
BigInteger tmp2 =
ans.divide(BigInteger.valueOf(a[i])).subtract(BigInteger.valueOf(tmp));
ans =
ans.add(tmp2.multiply(BigInteger.valueOf(a[i])));
}
System.out.println(ans);
}
}
}
转载于:https://www.cnblogs.com/lonewanderer/p/5677870.html
相关资源:JAVA上百实例源码以及开源项目