Aether_z @ 2022-01-25 12:59:49
#include <iostream>
using namespace std;
int main()
{
int m = 0, j = 1;
string n;
getline(cin, n);
for(int i = 0; i < n.size() - 1; i++ )
{
if(n[i] != '-')
{
m += (n[i]-'0') * j;
j++;
}
}
m = m % 11;
if(m == n[12]-'0' || (n[12]=='X' && m==10))
cout << "Right" << endl;
else
{
for(int i = 0; i < n.size() - 1; i++ )
{
cout << n[i];
}
if(m == 10)
cout << 'X' << endl;
else
cout << m << endl;
}
return 0;
}```
4测试点输入是6-670-82162-X
输出是Right
by ssxvngn @ 2022-01-25 13:05:02
@Aether_z 因为这一部分:
for(int i = 0; i < n.size()-1; i++ ){
if(n[i] != '-'){
m += (n[i]-'0') * j;
j++;
}
}
没判断最后一位为x
;
by ningago @ 2022-01-25 13:08:29
@Aether_z
1.把n.size - 1
改成12
或11
能过4
2.把getline
改成cin >> ...
能直接过
by ningago @ 2022-01-25 13:10:12
@Aether_z
getline
读入的是整行,一般在读有空格的信息时用,如果数据中出题人手贱打了个空格或者奇怪的东西,就也会被读进来
by Aether_z @ 2022-01-25 13:38:11
@一个pupil 但是这个循环没有循环到最后一位就结束了,它读不到X
by Aether_z @ 2022-01-25 13:40:47
@ningago 通过啦,谢谢大佬!但是cin不是遇到空格就会中断输入吗。。。(菜鸡提问)
by ningago @ 2022-01-25 13:48:15
@Aether_z
这个题没空格啊……
by Aether_z @ 2022-01-25 13:52:43
@ningago 对哦,谢谢大佬,就当我脑子瓦特了
by ssxvngn @ 2022-01-25 13:58:11
@Aether_z 、我这个人记错题意了……