C语言也有大学问——大数相加问题
来源:互联网 发布:python难找工作 编辑:程序博客网 时间:2024/06/05 09:15
两个大数相加,超过了数据类型能表示的范围时,怎么办?
首先想到的是字符串,因为字符串只要内存够,就可以存放,这个时候我们就要借助字符串的一些操作来实现大数相加的问题。
具体代码如下:
#include <stdio.h> #include <string.h> void main(){char s1[200], s2[200];int num1[200] = { 0 }, num2[200] = { 0 }, len1, len2, i, j,lenMax=0; //数组清零 gets(s1); gets(s2); //输入两个大数装入字符数组 len1 = strlen(s1); len2 = strlen(s2); //获得大数的长度 lenMax = len1 > len2 ? len1 : len2;for (i = len1 - 1, j = 0; i >= 0; i--)num1[j++] = s1[i] - '0';for (i = len2 - 1, j = 0; i >= 0; i--)num2[j++] = s2[i] - '0'; //将字符数组的值转为整形数值并装入数组 for (i = 0; i < lenMax; i++){num1[i] += num2[i];if (num1[i] > 9){num1[i] = num1[i] - 10;num1[i + 1]++;}} //两个数组按位相加 for (i = lenMax; (i >= 0) && (num1[i] == 0); i--); //从高位找出第一个不是零的数 if (i >= 0)for (; i >= 0; i--)printf("%d", num1[i]); //输出数组 else printf("0\n");}
阅读全文
3 3
- C语言也有大学问——大数相加问题
- C语言也有大学问——指针问题(一)
- C语言也有大学问——详解交换两个数
- C语言也有大学问——free()函数详解
- c语言大数乘法各位相加问题
- C语言大数相加
- c语言 大数相加
- C语言大数相加
- C语言---大数相加
- C语言精度计算——大数相加
- 大数相加(C语言)
- 两个大数相加 C语言
- C语言之大数相加
- C语言 ☞ 大数相加
- 小题目大学问--C语言输出问题
- 大数处理问题(—)(大数相加)
- C语言回顾(二、顺序程序及大数相加)——iOS开发基础
- 用C处理大数相加问题
- dinic+当前弧优化 模板
- Lambda
- 关于java调用http接口
- 关于 Metasploitable2 下的 unreal_ircd_3281_backdoor漏洞利用
- WinCE 中的 ListView怎么显示网格
- C语言也有大学问——大数相加问题
- Java 实现根据权重设置抽奖概率
- struts2,hibernate4,spring3配置时问题汇总及解决办法
- X86 LDS指令解析
- LeetCode——add two numbers
- 关于java中main()方法是不是第一个被执行的模块
- JVM如何收集垃圾?
- Codeforces 808E Selling Souvenirs 题解
- 监督学习(supervised learning)和无监督学习(unsupervised learning)