题解 | #[NOIP2008]ISBN号码#

[NOIP2008]ISBN号码

https://www.nowcoder.com/practice/95712f695f27434b9703394c98b78ee5

#include<stdio.h>
int main()
{
	char arr[13] = { 0 };
    //将13个字符的字符串存入数组
	for (int i = 0; i < 13; i++)
	{
		scanf("%c",&arr[i]);
	}
    //字符数字转化为整型数字
	int sum = 1 * (arr[0]-'0') + 2 * (arr[2]-'0') + 3 * (arr[3] - '0') + 4 * (arr[4] - '0') + 5 * (arr[6] - '0') + 6 * (arr[7] - '0') + 7 * (arr[8] - '0') + 8 * (arr[9] - '0') + 9 * (arr[10] - '0');
	//retnum为取模结果。
    int retnum = sum % 11;
    if (retnum == 10 && arr[12] == 'X')//取模结果为10,识别码正确的情况。
	{
		printf("Right");
	}
	else if (retnum != 10 && retnum == (arr[12] - '0'))//取模结果不为10,识别码正确的情况。
	{
		printf("Right");
	}
	else//识别码错误情况
	{
		for (int i = 0; i < 12; i++)
		{
			printf("%c", arr[i]);
		}
        if(retnum==10)//取模结果为10,识别码应该为X。
        {
            printf("X");
        }
        else//否则识别码就是取模结果
        {
            printf("%d", retnum);
        }
	}
	return 0;
}

全部评论

相关推荐

昨天 11:21
门头沟学院 Java
总包48.5w,意想不到的价格
无情咸鱼王的秋招日记之薛定谔的Offer:R
点赞 评论 收藏
分享
Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务