题解 | #[NOIP2008]ISBN号码#

[NOIP2008]ISBN号码

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

int main()

{

int lan = 0,pub=0,id=0;

char PIN;

scanf("%d-%d-%d-%c", &lan,&pub,&id,&PIN);

int sum = 0,sum1=0,sum2=0;

int pub1=pub,id1=id;//将值保存在另一个变量中

int i = 0;

//求pub的相加之和

for (i = 4; i >= 2; i--)

{

sum += (pub % 10)*i;

pub = pub/10;

}

//求id相加之和

for (i = 9; i >= 5; i--)

{

sum1 += (id % 10) * i;

id = id/10;

}

sum2 = (lan * 1 + sum1 + sum)%11;

//分两种情况,一种是sum2等于10的情况,一种是sum2不为10的情况

//1、为10的情况

while (sum2 == 10)

{

if (PIN=='X')

{

printf("Right");

break;

}

else

{

PIN = 'X';

printf("%d-%d-%d-%c", lan, pub1, id1, PIN);

break;

}

}

//2、不为10的情况

while (sum2 != 10)

{

if (sum2==(int)PIN-'0')//用所输入对应的ASCII值减去'0',即为所表达的数字

{

printf("Right");

break;

}

else

{

printf("%d-%d-%d-%d", lan, pub1, id1, sum2);

break;

}

}

return 0;

}

全部评论

相关推荐

点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务