大数相加

匿名 (未验证) 提交于 2019-12-03 00:18:01

转自:https://blog.csdn.net/insistGoGo/article/details/6581466

算法思想:大数使用字符串存储,每一个单元存储操作数的每一位,之后执行位相加。

基本思路:字符串反转、字符变数字、位运算、反序输出

C语言代码:

  1. #include<stdio.h>
  2. #include<string.h>
  3. voidchar
  4. voidcharcharchar
  5. int
  6. char
  7. char
  8. char
  9. return
  10. voidcharcharchar
  11. int
  12. int//表示进位
  13. //初始化,对以后位运算有很大帮助!
  14. char
  15. char
  16. sizeof(char//这里不能写成memset(sum,0,sizeof(sum));原因见注意事项1
  17. //字符串反转且字符串变数字
  18. int
  19. int
  20. for
  21. '0'
  22. for
  23. '0'
  24. //位运算
  25. for
  26. '0';//得到末位
  27. //得到进位
  28. voidchar
  29. int
  30. int
  31. int
  32. for//找到第一个不为零的位置,方便输出
  33. for
  34. "%c"

注意事项:

1、要注意sizeof的用法

2、memset(sum,0,Max*sizeof(char)):

3、在这里,对字符串进行初始化0操作很重要,它会影响到位操作和输出,要引起重视!

4、100位相加,和最大为101位,故申请最大为101

文章来源: 大数相加
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!