Basic remains
Time Limit: 1000MS |
Memory Limit: 65536K |
|
Total Submissions: 4076 |
Accepted: 1707 |
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
解题报告:以b进制输入p和m,求p模m的b进制结果 ,用Java写挺简单的
代码如下:
import java.util.Scanner; import java.math.BigInteger; public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); BigInteger ans, p, m; int b; String str; while (scan.hasNextInt()){ b = scan.nextInt(); if (b == 0){ break; } p = scan.nextBigInteger(b); m = scan.nextBigInteger(b); ans = p.mod(m); str = ans.toString(b);//将ans转化成b进制形式 System.out.println(str); } } }