高精度数相加,俗称大整数相加

简介: 代码如下
#include <stdio.h>
#include <string.h>
/*
高精度大数相加,未判断输入负数情况  位数(1000以内)  
*/ 
int main()
{
  char a[1000],b[1000];
  int c[1002]={0};
  int n[1000]={0},m[1000]={0};//这三个数组必须初始化为0; 
  int p=0;
  int i,j,k=0;
  scanf ("%s%s",a,b);
  if (a[0]=='0'&&b[0]=='0')
  {printf ("0");  //判断输入为0时 
  return 0;} 
  else
  {
  int x=strlen(a),y=strlen(b);//计算输入的数字长度 
  for (i=0,j=x-1;i<x;i++,j--)
  n[i]=a[j]-'0';
  for (i=0,j=y-1;i<y;i++,j--)
  m[i]=b[j]-'0';//逆序排序 
  k=x>y?x:y; //判断输入的那个位数长 
  for (i=0;i<=k;i++)//进位处理 ,相比于i<=2000,优化效率 
  {
    c[i]+=n[i]+m[i];
    if (c[i]>=10)
  {
    c[i+1]++;
    c[i]%=10;
  } 
  }
  for (j =1001;; j--) //去除未用到的位,即去 0 
        if (c[j] != 0)
    {
    p=j;
    break;
  }
    for (i = p; i >= 0; i--) 
    printf("%d", c[i]);//逆序输出 
    printf("\n");
    return 0;
}
}


目录
相关文章
|
1月前
两个整数相加
【10月更文挑战第12天】两个整数相加
19 5
|
2月前
|
机器学习/深度学习 网络协议 Windows
几个数相加
几个数相加。
50 4
|
6月前
|
C++
各位相加(C++)
各位相加(C++)
33 1
|
6月前
|
算法 Python
计算32位二进制整数中1的个数(包括负数补码)
计算32位二进制整数中1的个数(包括负数补码)
121 0
|
6月前
[leetcode 数位计算]2520. 统计能整除数字的位数
[leetcode 数位计算]2520. 统计能整除数字的位数
|
C++
C++ 超大整数相加、相乘的精确求解,以及10000的阶乘
C++ 超大整数相加、相乘的精确求解,以及10000的阶乘
116 0
|
算法 测试技术 C++
基于C++实现的大整数计算
基于C++实现的大整数计算
155 0
基于C++实现的大整数计算
35.数值的整数次方
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方
52 0
35.数值的整数次方
|
前端开发 JavaScript 程序员
数值的整数次方
数值的整数次方
数值的整数次方
076.计算高次方数的尾数
076.计算高次方数的尾数
126 0