hdu 2714
地址:http://acm.hdu.edu.cn/showproblem.php?pid=2714
题意:给一串ISBN号,根据算法求出缺的(?表示)那一位。算法是各位上的数字按权相加,和必须为11的倍数。
没啥好说的,直接穷举。注意不存在输出-1。
代码:
1 # include <stdio.h> 2 3 4 int main () 5 { 6 char str[20] ; 7 int sum, i, pos ; 8 while (gets(str)) 9 { 10 sum = 0 ; 11 for (i = 0 ; str[i] ; i++) 12 { 13 if (str[i] == '?') pos = i ; 14 else if (str[i] == 'X') sum += 10 ; 15 else sum += (10-i) * (str[i]-'0') ; 16 } 17 if (pos == 9) 18 { 19 if ((sum+10)%11==0) puts ("X") ; 20 else{ 21 for (i = 0 ; i <= 9 ; i++){ 22 if ((sum + i)%11==0){ printf ("%d\n", i) ; 23 break ;} 24 } 25 } 26 } 27 else 28 { 29 for (i =0 ; i <= 9 ; i++) 30 { 31 if ((sum + (10-pos)*i)%11 == 0) 32 { 33 printf("%d\n", i) ; 34 break ; 35 } 36 } 37 if (i >=10) puts ("-1") ; 38 } 39 } 40 return 0 ; 41 }