2017年4月9日 星期日

ITSA 53 - [Problem 1] ISBN驗證 - 參考答案

Difficulty: Eazy
Ref: ITSA 53 - [Problem 1] ISBN驗證
/*******************************************************/
/* ITSA 53 - [Problem 1] ISBN驗證                      */
/* Author: awei0905  [at]  awei0905.blogspot.tw        */
/* Version: 2017/04/09                                 */
/*******************************************************/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int main() {
 int n, isbn[10];
 char buf[2];
 scanf("%d", &n); 
 while(n--){
  for (int i = 0; i < 10; i++) {
   scanf("%s", buf);
   if (buf[0] == 'X')
    isbn[i] = 10;
   else
    isbn[i] = atoi(buf);
  }
  for (int i = 0; i < 2; i++)
   for (int j = 9; j > 0; j--)
    for (int k = j - 1; k >= 0; k--)
     isbn[j] += isbn[k];
  if (isbn[9] % 11) 
   printf("NO\n");
  else
   printf("YES\n");
 }
}
Debug: I/O
6
X X X X X X X X X X
0 1 3 1 6 2 9 5 9 X
0 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0
7 8 9 X 1 2 3 X 9 X
YES
YES
NO
YES
YES
NO

沒有留言:

張貼留言