高精度*高精度 problem pascal 题目:输入两个数(位数<=20000); 求乘积 求大牛帮我该这次的程序 TAT…

2024-12-25 12:05:06
推荐回答(1个)
回答1:

高兴的告诉你,你的程序是对的

听我仔细说
我测了1234*1234,ra=10000,得1522756,这是对的,对吧?
我又测了1234*1234,ra=9999,得1522908,这也是对的。为什么呢?
按照你的程序,ra=9999,就是9999“一存”,从写法上看,这实际上是9999进制。
9999进制!
你算一下:9999进制下(152)(0)<小括号表示一位,(152)就是9999进制下152的符号>加上9999进制下(2918),152*9999+2918=1522756!对了吧?
也就是说你实现的是自由进制下的乘法,输入是10进制,输出是ra进制!
所以,为了阅读结果方便,建议你把每位加上一个空格,最后加上进制,或者能自定义ra更好。比如
152 2908(9999)
表示一个9999进制下的两位数(152)(2908)
没错,明白了吧?