#include#include using namespace std; int main() { // flag用于最后判断是否添加符号 int i, j, flag = 0; string a_s, b_s; int a[10088] = { 0 }, b[10088] = { 0 }, c[10088] = { 0 };//数组初始化 //以防万一数组长度尽量大 cin >> a_s; cin >> b_s; int la = a_s.length(), lb =b_s.length(); //计算a_s b_s的长度 int l_max = max(la, lb); //计算a_s b_s的最大长度,确定做减法时的循环次数 for (i = 0; i < la; i++) { a[la - i] = a_s[i] - '0'; //将字符转换成数字并倒置储存 //这里应该注意i是从0开始的 所以 la-i>=1!!!! } for (i = 0; i < lb; i++) { b[lb - i] = b_s[i] - '0'; } if (la > lb || la == lb && a_s >= b_s) //判断a是否大于b { for (i = 1; i <=l_max; i++) { // i从1开始循环 if (a[i] < b[i]) { //若a[i] 1) { l_max--; //因为C数组是导致储存的 所以假设01100会被储存为 00110 // 所以要去除多余的零变为 0011 //但是要注意0-0 这种情况 即 保留最后一个零 所以l_max>1 最后一位不参与循环 } for (i = l_max; i >0; i--) { cout << c[i]; //倒置输出 } return 0; }



