回答都不太正确,通过询问同学,运用大数取余方法已经成功解决,不用再回复了
printf("%d\n",yu_b);
这里\n应该有问题
换成
printf("%d”,yu_b);
试试
这个用字符串来做,int类型不行的
大数取余的方法能得到正确答案,但性能不好。
首先,要判断减数和被减数哪一个位数长,减数位数长是正常减;被减数位数长,则被减数减减数,最后还要加上负号;两数位数长度相等时,最好比较一下哪一个数字大,否则负号处理会很繁琐,用大的减去小的,最后加上负号;
其次,处理每一项时要,如果前一位相减有借位,就先减去上一位的借位,无则不减;再去判断是否能够减开被减数,如果减不开,就要借位后再去减,同时置借位为1,否则置借位为0。
结果可能会出现前面是一堆0的情况,要处理好,如当减数为112,而被减数为111时,会出现001 ,这时,需要将前面的0删除。