Recognizing Good ISBNs

题目:给你一个10个数字组成的串s,最后一位可能是X(代表10),计算出前1~前10项的和s1,

在对s1,计算前1~前10项的和,,问第10项能否被11整除,即10s(0)+9s(1)+…+s(10)。

分析:简单题。模拟即可,注意题意即可。

说明:合法的串,首尾会有若干空格,中间会有‘-’、数字、或者租后一个数字是‘X’。

#include <algorithm>#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <cmath>using namespace std;char buf[101];int save[11];int main(){while (gets(buf)) {int start = 0,end = strlen(buf)-1;while (buf[start] == ' ') start ++;while (buf[end] == ' ') buf[end –] = 0;int flag = 0,count = 0;for (int i = start ; buf[i] ; ++ i) {if ((buf[i] >= '0' && buf[i] <= '9')||(buf[i] == 'X' && count == 9))save[count ++] = buf[i]=='X'?10:buf[i]-'0';else if (buf[i] != '-') {flag = 1;break;}if (count > 10) {flag = 1;break;}}if (count != 10) flag = 1;for (int i = 1 ; i < 10 ; ++ i)save[i] += save[i-1];for (int i = 1 ; i < 10 ; ++ i)save[i] += save[i-1];if (save[9]%11) flag = 1;printf("%s is ",&buf[start]);if (flag)printf("incorrect.\n");else printf("correct.\n");}return 0;}

没有什么可留恋,只有抑制不住的梦想,

Recognizing Good ISBNs

相关文章:

你感兴趣的文章:

标签云: