解析: 判断一个大数是否是11的倍数。不能利用一般的除法运算。我的方法是这样的:把原字符串分解为若干个位整数段,
每个整数段分别除以11,将余数分到下一个整数段,直到最后除完为止。其实也就是模拟除法运算。
1 #include <stdio.h> 2 #include <string.h> 3 static int Mod(int n, char *p); 4 int main() 5 { 6 char ch[1010]; 7 while(scanf("%s", ch) == 1 && strcmp(ch,"0") != 0){ 8 if(Mod(11,ch) == 0) 9 printf("%s is a multiple of 11.\n", ch); 10 else 11 printf("%s is not a multiple of 11.\n", ch); 12 } 13 return 0; 14 } 15 /*求p mod n 的值*/ 16 static int Mod(int n, char *p)/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ 17 { 18 int i, l, m = 0; 19 l = strlen(p); 20 for(i = 0; i < l; i++){ 21 m = m * 10 + (p[i] - '0'); /*下一位被除数数*/ 22 m = m % n; /*余数*/ 23 } 24 return m; 25 }