Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 4429 | Accepted: 1869 |
Description
Given a base b and two non-negative base b integers p and m, compute p mod m and print the result as a base b integer. p mod m is defined as the smallest non-negative integer k such that p = a*m + k for some integer a.
Input
Input consists of a number of cases. Each case is represented by a line containing three unsigned integers. The first, b, is a decimal number between 2 and 10. The second, p, contains up to 1000 digits between 0 and b-1. The third, m, contains up to 9 digits
between 0 and b-1. The last case is followed by a line containing 0.
Output
For each test case, print a line giving p mod m as a base-b integer.
Sample Input
2 1100 101 10 123456789123456789123456789 1000 0
Sample Output
10 789
Source
训练下java的大数,来自 MMchen
题意:在 b 进制下,算出 p mod m
2305 | Accepted | 5916K | 829MS | Java | 527B | 2013-05-09 11:35:20 |
import java.math.*; import java.util.*; public class Main { public static void main(String args[]){ int base; Scanner cin = new Scanner(System.in); while(cin.hasNextInt()){ base = cin.nextInt(); if(base == 0) break; BigInteger p, m; p = cin.nextBigInteger(base); //自动转换为 base进制读入 m = cin.nextBigInteger(base); BigInteger a; String str; a = p.mod(m); // a = p%m 注意此时结果为 10 进制 str = a.toString(base); //将十进制 a 转换成 base 进制字符串 System.out.println(str); } } }