2017年6月1日 星期四

ITSA 50補 - [Problem 2] 檢驗學號 - 參考答案

Difficulty: Easy
Ref: ITSA 50補 - [Problem 2] 檢驗學號
/*******************************************************/
/* [Problem 2] 檢驗學號                                 */
/* Author: awei0905  [at]  awei0905.blogspot.tw        */
/* Version: 2017/06/01                                 */
/*******************************************************/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
 char buf[14];
 int n;
 scanf("%d", &n);
 while (n--) {
  scanf("%s", buf);
  int sum = 0;
  for (int i = 0; i < 12; i += 2)
   sum += buf[i] + 3 * buf[i + 1];

  sum = 26 + '@' - (sum - 24 * '0') % 26;

  if (sum == buf[12])
   printf("valid\n");
  else
   printf("invalid\n");
 }
 return 0;
}
Debug: I/O
基偶位置作 sum,然後加減乘除。
2
123456789012L
098765432100A
valid
invalid

沒有留言:

張貼留言