大整数的加法
来源:互联网 发布:淘宝如何退货 编辑:程序博客网 时间:2024/04/30 15:33
问题:
实现30位以内的大整数的加法
#include <stdio.h>#include <string.h>int main(){char s1[50],s2[50];int a[50]={0},b[50]={0},c[50]={0},m,n,q,k,i;printf("请输入两个大整数并以回车键表示输入结束:\n");gets(s1);//获得字符串形式的大整数gets(s2);m=strlen(s1);//m等于字符串的长度n=strlen(s2);if(m<n){ k=n;}else{ k=m;//使k等于大的数 q=k;} for(i=0;i<m;k--,i++) a[k]=s1[m-1-i]-'0';//s1本来是字符,减去0之后才变成数字 for(k=q,i=0;i<n;k--,i++) b[k]=s2[n-1-i]-'0'; printf("\n");//上面两个的操作是将两个char型的字符串转变成int数组里面的数 for(i=q;i>=0;i--){ c[i]=a[i]+b[i];//两数组相加把值赋给另一个数组 if(c[i]>=10) { c[i]=c[i]-10; c[i-1]++; }//考虑到两数相加会出现大于10要进位的情况} printf("两大整数相加结果是:\n"); if(c[0]!=0)//因为之前防止多出来一个所以增加了一个,要保证增加出来的那个不要输出0; { for(i=0;i<=q;i++) printf("%d",c[i]); } else { for(i=1;i<=q;i++) printf("%d",c[i]);} printf("\n"); return 0; }
运行结果:
0 0
- 大整数的加法
- 大整数的加法
- 大整数的加法
- 大整数的加法问题
- 大整数的加法运算
- 用数组存储大整数,实现大整数的加法
- 任意长度的高精度大整数加法
- 任意长度的高精度大整数加法
- 大整数的乘法、加法、减法
- 大整数加法的源代码合集!
- 大整数的加法、减法和乘法
- 大整数的乘法与加法
- 大整数的加法和乘法运算
- 任意长度的高精度大整数加法
- Problem B: 大整数的加法运算
- Problem I: 大整数的加法运算
- Problem A: 大整数的加法运算
- 大整数加法
- 第二周项目2-程序的多文件组织
- 【Linux】Linux命令英文全称解释
- 字节,字符流转换工具
- ajax写级联效果,动态从数据库获取数据
- BZOJ1087: [SCOI2005]互不侵犯King 状压DP
- 大整数的加法
- @Transactional spring 配置事务 注意事项
- 斐波那契_矩阵乘法
- java命令行引入不同的Jar包
- Coroutine
- java解析由String类型拼接的XML文件
- android定制activity标题栏
- Android读写文件正确实行方法介绍
- LSH 位置敏感哈希算法