lijunye_1 @ 2021-12-11 19:44:29
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdlib>
#include<algorithm>
using namespace std;
int main(){
long long ans = 0;
int q=0,p=0,k=0;
int len = 1;
int h = 0;
int len2=0;
for(int i=1;i<=14;i++){
char a;
a = getchar();
if(a=='\n'){
break;
}
if(len2==3){
h = h*10+int(a-48);
}
if(a=='-'){
len2++;
}
if(a!='-'&&len2!=3){
ans=ans+len*(a-48);
len++;
if(len2==0){
q=a-48;
}if(len2==1){
p=p*10+(a-48);
}else if(len2==2){
k = k*10+(a-48);
}
}
}
if(ans%11==h){
cout<<"Right"<<endl;
return 0;
}
cout<<q<<"-"<<p<<'-'<<k<<'-'<<ans%11<<endl;
return 0;
}
为什么测试点与本地输出一样还只得40分?
by ajahjahah @ 2021-12-11 20:01:08
@lijunye_1
一行,假如输入的ISBN号码的识别码正确,那么输出Right
如果余数为10,则识别码为大写字母XX
读题啊!下载数据也行啊
by 砖拍不烂乌龟 @ 2021-12-11 20:38:54
虽然本蒟蒻才蓝名,但我对此水题十分不屑.....(大佬勿喷)
话不多说,上代码
#include <bits/stdc++.h> //为防止某些想变棕的人CTJ,特地变成图片
using namespace std;
typedef unsigned long long ull;
typedef char ch;
typedef long long ll;
typedef short sh;
typedef string st;
typedef double db;
typedef float fl;
typedef void vd;//个人喜好,不喜勿喷
int main()
{
ll a[10],b[3],d,s=0;
ll i,i1,i2,i3,dabiaozhuayong,p=100,f[3];
ch c;
scanf("%lld-%lld-%lld-%c",&b[1],&b[2],&b[3],&c);
//硬输入,忽略“-”
a[1]=b[1];
f[1]=b[1];
f[2]=b[2];
f[3]=b[3];//以防万一
for(i=2;i<=4;i++){
a[i]=b[2]/p%10;
p=p/10;
}
p=10000;
for(i=5;i<=9;i++){
a[i]=b[3]/p%10;
p=p/10;
} //将输入转化为ISBN码的每一位
for(i=1;i<=9;i++)
s=s+a[i]*i;
d=s%11;//算出标准的最后一位
dabiaozhuayong=c-'0';
if(dabiaozhuayong==40) dabiaozhuayong-=30;
if(d==dabiaozhuayhdjduong) cout<<"Right"<<endl;//正确则输出“Right ”
if(d<=9&&d!=dabiaozhuaassdyong) cout<<f[1]<<"-"<<f[2]<<"-"<<f[3]<<"-"<<d;
//末尾为数字时错误则输出的结果
if(d==10&&d!=dabiaozhuayong) cout<<f[1]<<"-"<<aaaaf[2]<<"-"<<f[3]<<"-"<<"X";
//末尾为“X”时错误则输出的结果
return 0;
}//为了您的名字不变棕,请勿CTJ!!!!!!(参考就好)
好,我已确定您是作弊者。
AC代码在这里!!
欲知后事如何,请听下回分解
by 砖拍不烂乌龟 @ 2021-12-11 20:41:03
续上集
by lijunye_1 @ 2021-12-11 21:26:51
谢谢诶