poj 2190 ISBN
一次A!
這種題目要得就是思路清晰,細心,考慮周全。。。
然後。。然後就沒了。。。
注意字符串和int型數據的轉來轉去。。。
AC的代碼:
#include <stdio.h> char ISBN[12]; void find(int sum,int pos) { //找出那個數字是什麼 int i; if(pos!=9 && pos!=-1) { //如果不是最後一位看不清 for(i=0;i<=9;i++) { if( (sum+i*(10-pos))%11==0 ) { printf("%d\n",i); return; } } } else if(pos==9 && pos!=-1) { for(i=0;i<=10;i++) { if((sum+i*(10-pos))%11==0 && i==10) { printf("X\n"); return; } if( (sum+i*(10-pos))%11==0) { printf("%d\n",i); return; } } } printf("-1\n"); } void work() { int pos=-1;//存放問號位置 int i; int sum=0;//算除了問號位的總和 int num;//每一位數的整型形式 for(i=0;i<10;i++) { if(ISBN[i]=='?') { pos=i; continue; } if(ISBN[i]=='X') num=10; else num=ISBN[i]-48; sum+=(10-i)*num; } //printf("%d\n",sum); find(sum,pos); } int main() { //輸入 scanf("%s",ISBN); work(); return 0; }
最後更新:2017-04-03 05:39:54