1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
//============================================================================ // Name : 大数取余 . cpp // Author : vestinfo // Version : 1.0 // Copyright : http://www.cnblogs.com/vestinfo // Description : 对用 long int 存储溢出的数进行取余操作 //============================================================================ #include <iostream> #include <string.h> using namespace std; /* 原型: int mod (char* bigNumber, int divisor); 功能:求一个大数 bigNumber (大于 long int 的存储最大值)被 divisor 除的余数。 参数: bigNumber 是大数字符串, divisor 是除数。 返回值: 余数 */ int mod (char * bigNumber,int divisor) { int i,len,ans=0; len = strlen (bigNumber); for (i=0;i<len;i++) { ans = ans*10 + bigNumber[i] - '0' ; // 前一位上的数的余数 *10+ 当前位上的数 ans = ans % divisor; } return ans; } int mod (string bigNumber,int divisor) { int i,len,ans=0; len = bigNumber.size(); for (i=0;i<len;i++) { ans = ans*10 + bigNumber[i]-'0' ; // 前一位上的数的余数 *10+ 当前位上的数 ans = ans % divisor; } return ans; } int main () { //test1 cout << mod( "6666666666666666666666666666666666666666666661" ,6); //test2 char * inputNumber; cin >> inputNumber; cout << mod(inputNumber,6); return 0; }
转载于:https://www.cnblogs.com/helloweworld/archive/2012/09/16/2687615.html