HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
Big Number
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1212
——每天在线,欢迎留言谈论。
题目大意:
给你两个数 n1,n2。其中n1 很大很大,n1%n2的值。
知识点:
①秦九韶公式:
例:1314= ((1*10+3)*10+1)*10+4
②(a*b)%c == (a%c)*(b%c) 、(a+b)%c == (a%c)+(b%c) 。
思路:
每步取模即可。
C++ AC代码:
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 int main() 6 { 7 string s1; 8 int y; 9 while(cin>>s1>>y) 10 { 11 int sum=s1[0]-'0'; 12 for(int i=1;i<s1.size();i++) 13 { 14 sum=(sum*10+s1[i]-'0')%y; 15 } 16 cout<<sum<<endl; 17 } 18 return 0; 19 }
Java AC代码:
1 import java.util.Scanner; 2 import java.math.BigInteger; 3 public class Main { 4 public static void main(String[] args){ 5 Scanner scn = new Scanner(System.in); 6 BigInteger bint1,bint2; 7 while(scn.hasNext()){ 8 bint1 = scn.nextBigInteger(); 9 bint2 = scn.nextBigInteger(); 10 System.out.println(bint1.remainder(bint2)); 11 } 12 System.exit(0); 13 } 14 }
2017-07-23 14:26:23 -> 2017-07-23 14:41:00