我想知道如何将两个字符数组的内容相加。
例如,
char[] a = {1,2,3}
char[] b = {1,2,3}
//the output should be c
char[] c = {2,4,6}
我知道这不是正确的编码,但我需要知道如何完成。
最佳答案
因为这很可能是一个学习练习,这里有一些完成它的提示:
char
表示数字是数字常量,表示从'0'
到'9'
的 UNICODE 代码点,包括在内。- 要从
char
值中获取数字值,请从中减去'0'
,如下所示:int digitA = a[i] - '0';
- 要添加两个“数字”,从每个数字的后面开始,循环向后到前面
- 保留一个“进位”值,即零或一,取决于相加的结果是小于十还是大于十
- 在每一步中,将
digitA
加到digitB
上,并将carry
加到总和上。 - 通过将总和与 10 进行比较,为下一个操作进位。
- 通过将
sum % 10
应用于结果来获取该总和的最后一位。 - 在
sum % 10
上加上'0'
得到结果的位数,放入结果中 - 请注意,如果从最高位开始有一个
进位
,结果数组可能比两个数组中最长的一个长。 - 您需要在循环中维护三个索引 - 一个用于结果,两个用于两个数字中的每一个
- 您不知道结果是否需要额外的数字,因此预先为额外的数字分配空间可能更容易,如果它最终为零则将其删除。
关于java - 如何添加两个内容为数字的字符数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22239338/