C语言大作业 题目是:请设计一个算法完成两个超长正整数的加法。谁会的帮帮忙?

大神们哪位知道,C语言大作业 题目是:请设计一个算法完成两个超长正整数的加法。谁会的帮帮忙?
最新回答
七年觐汐

2024-10-22 12:08:33

显然是高精度了。
我记得长整数指的是long型、超过long还有long long、以及__int64 不过显然题目不是这个意思。
我想LZ对加法的竖式应该很熟悉、高精度就是用的竖式的原理。
我只给你算法、不提供代码、自己写代码才是最好的。
首先、输入的时候就不能直接scanf整形了、那就以字符串的形式输入--我想LZ你会的。
然后建立四个整形数组、其中两个表示所要相加的数、一个表示进位、一个表示结果。
由于两个个位数相加绝对不会超过18、所以最后进位的数组存成bool型也可以。
首先把输入的两个字符串分别转到两个整形数组里、注意要从尾开始转、这样两个整形数组的下标就按照从0开始依次表示个十百千...的顺序来存两个数了、而且严格按位对齐。
于是就可以for一遍、每个数组位相加(注意数组初始化设为0、这样加到最高位就可以了)。
相加的时候判断是不是大于10、如果大于10、就减去10、然后这一位数组下标+1的那一位的进位bool数组由0变成1。
新建一个输出的数组。
最后再for一次、把结果数组遍历、如果有进位就+1、如果继续进位就直接在下一位操作。
导入到输出数组、printf就ok
一澜冬雪

2024-10-22 08:12:00

两个超长,啥意思
double