题解 | #[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;

}

全部评论

相关推荐

2024-12-23 06:50
门头沟学院 Java
给点吧求求了:3点发的帖子,害怕😰
点赞 评论 收藏
分享
01-15 13:52
已编辑
河南大学 Java
六年要多久:标准头像,不吃香菜😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务