题解 | #还是A+B#
还是A+B
https://www.nowcoder.com/practice/8c3c5dae2c4a4266ba04f993a18e286b
循环得到后k位的数值(可能a b没有k位那么长,只能得到a b间最小位数)
#include <iostream> using namespace std; //k的含义是:a b的末尾k位是否相同,而不是个位是否相同 int main(){ int a,b; while(cin >>a >>b && (a!=0 && b!=0)){ int ta = a,tb = b; int k; cin >>k; int aa=0,bb=0; while(k && a &&b){ aa = aa*10+ta%10; //得到的是逆序的位数,逆序也不影响判断 bb = bb*10+tb%10; if (aa!= bb)break; ta/=10; tb/=10; k--; } if (aa==bb) cout <<"-1"<<endl; else cout << a+b<<endl; } }