15/20
#includeusing namespace std;stack s;char a[3]={'J','Q','K'};int main(){ long long A,B; cin>>A>>B; int i=1; while(A>0&&B>0){ if(i%2==1){ s.push((A%10+B%10)%13); }else{ int x=B%10-A%10; if(x<0)x+=10; s.push(x); } A/=10;B/=10; i++; } if(A>0)cout< 0)cout<
后来觉得题目理解有问题,B的每一位数字都要处理。
15/20#includeusing namespace std;stack s;char a[3]={'J','Q','K'};int main(){ long long A,B; cin>>A>>B; int i=1; while(B>0){ if(i%2==1){ s.push((A%10+B%10)%13); }else{ int x=B%10-A%10; if(x<0)x+=10; s.push(x); } if(A>0)A/=10; B/=10; i++; } while(!s.empty()){ if(s.top()<=9)cout<
然而还是不行,看了其他人的博客,发现是因为没考虑这种A比B长的情况。
真是太奇葩了,明明和题目要求不符了嘛。再改。#includeusing namespace std;stack s;char a[3]={'J','Q','K'};int main(){ long long A,B; cin>>A>>B; int i=1; while(B>0||A>0){ if(i%2==1){ s.push((A%10+B%10)%13); }else{ int x=B%10-A%10; if(x<0)x+=10; s.push(x); } if(A>0)A/=10; if(B>0)B/=10; i++; } while(!s.empty()){ if(s.top()<=9)cout<
改完了,17/20,还有两个测试点没过。