T1:YODA
题意:给出两个数,要求把两个数对撞,每一个十进制位上的大的留在原数,如果相同,两个都留在原数,最后输出两个对撞后的原数。
思路:直接模拟即可,两个数每一次都/10%10,比较是否合法。
#include<cstdio>
#include<cstring>
char s1[20], s2[20];
int main() {
scanf("%s%s", s1, s2);
int N = strlen(s1), M = strlen(s2);
for(int i = N-1, j = M-1; i >= 0 && j >= 0; -- i, -- j) {
if(s1[i] > s2[j]) s2[j] = 0;
else if(s1[i] < s2[j]) s1[i] = 0;
}
int n = -1, m = -1;
for(int i = 0; i < N; ++ i)
if(s1[i]) {
if(n == -1) n = 0;
n = n * 10 + s1[i] - '0';
}
for(int i = 0; i < M; ++ i)
if(s2[i]) {
if(m == -1) m = 0;
m = m * 10 + s2[i] - '0';
}
if(n == -1) puts("YODA");
else printf("%d\n"