这道题不难但是我写的代码十分啰嗦,参考了柳神的代码简化后如下:
#include <iostream>
using namespace std;
int main() {
int a, b, c, l, m, n, x, y, z;
scanf("%d.%d.%d %d.%d.%d", &a, &b, &c, &l, &m, &n);
if( l < a || (l == a && m < b) || (l == a && m == b && n < c)){
swap(a,l); swap(b, m); swap(c, n);
printf("-");
}
z = n < c ? n -c + 29 : n - c;
m = n < c ? m - 1 : m;
y = m < b ? m - b + 17 : m - b;
x = m < b ? l - a -1 : l - a;
printf("%d.%d.%d", x, y, z);
return 0;
}
主要是对最后判断各位上的数够不够减需不需要借位的那几句做了优化,以后在刷题的时候也要灵活运用这个三目运算符,不要只想着用if
和else
语句来写。