#include <stdio.h> int main() { long long n; int a, b; scanf("%lld", &n); if(n>0) ; else { if((n>=(-10))&&(n<0)) n=0; else { a=(n%10)*(-1); b=((n/10)%10)*(-1); a>b?(n/=10):(n=((n/10)+b)-a); } } printf("%lld\n", n); return 0; }
@如果输入的是正数,则不做任何改变。如果是负数则先要看该负数是否在闭区间[-10, 0]内,在的话将n的值赋值为0。当此负数不在上述区间内时,要比较个位和十位的数字哪个大,如果个位的数大则把这个负数除以10来将各位抹掉,否则先将这个负数除以10,即先将各位抹掉,然后再将抹掉个位后的负数个位清零,最后加上之前被抹掉的个位上的数值。本段代码执行到最后变量n内的值即为Answer。