【整数逐位除法求余补〇完整版】2022-4-11
今天兴致完善了一下除法求余补〇,结果与无补〇完全一致,补〇完整版,超过18位除数要用乘法与减法,本次配合手工计算记录及运行结果如下。
void 整数逐位求余(_int64* 数, int 长, _int64 除数)
{//除数小于1E+18_int64 商 = 0, 调 = 0, 序 = 0, 被除 = 0, 模 = 1E+18, 取 = 1, 零 = 0;while (数[序] == 0)++序;被除 = 数[序];if (序 < 长 - 1)调 = 数[++序], 取 = 1;std::cout << "\n商:";while (序 < 长){while (取 > 0 && 被除 < 除数){if (调 > 0)被除 *= 10, 取 *= 10, 被除 += 调 / (模 / 取), 调 %= 模 / 取, (商>0 && ++零>1 ? std::cout << "0" : std::cout << "");else if (++序 < 长)调 = 数[序], 取 = 1;else取 = 0;}if (被除 >= 除数){商 = 被除 / 除数; std::cout << 商;被除 = 被除 - 商 * 除数;零 = 0;}else;}std::cout << "余数:" << 被除 << std::endl;
}
77774777888888888888888888888888889999999999
198737927
---------------------------------------------------------------------------3
1815339978
---------------------------------------------------------------------------9
266986358
---------------------------------------------------------------------------1
682484318
---------------------------------------------------------------------------3
862705378
---------------------------------------------------------------------------4
677536708
---------------------------------------------------------------------------3
813229278
---------------------------------------------------------------------------4
1827757088----------------------------------------------------------0
---------------------------------------------------------------------------9
391157458
---------------------------------------------------------------------------1
1924195318
---------------------------------------------------------------------------9
1355539758
---------------------------------------------------------------------------6
1631121968
---------------------------------------------------------------------------8
412185528
---------------------------------------------------------------------------2
1470967488----------------------------------------------------------0
---------------------------------------------------------------------------7
798019998
---------------------------------------------------------------------------4
306829088------------------------------------------------------------0
---------------------------------------------------------------------------1
1080911618
---------------------------------------------------------------------------5
872219838
---------------------------------------------------------------------------4
772681308
---------------------------------------------------------------------------3
1764675278
---------------------------------------------------------------------------8
1747718628
---------------------------------------------------------------------------8
1578152128
---------------------------------------------------------------------------7
1869866398
---------------------------------------------------------------------------9
812250559
---------------------------------------------------------------------------4
1729885199----------------------------------------------------------0
---------------------------------------------------------------------------8
1399817839
---------------------------------------------------------------------------7
865235099------------------------------------------------------------0
---------------------------------------------------------------------------4
702833919
---------------------------------------------------------------------------3
1066201389
---------------------------------------------------------------------------5
725117549
---------------------------------------------------------------------------3
1289037689
---------------------------------------------------------------------------6
96610127