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

简介: 代码如下
#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;
}
}


目录
相关文章
|
5天前
|
机器学习/深度学习 网络协议 Windows
几个数相加
几个数相加。
19 4
|
4月前
|
C++
各位相加(C++)
各位相加(C++)
30 1
|
9月前
|
C语言
求一个整数的所有因数
C 语言实例 - 求一个整数的所有因数
74 1
【剑指offer】-数值的整数次方-12/67
【剑指offer】-数值的整数次方-12/67
|
C++
C++ 超大整数相加、相乘的精确求解,以及10000的阶乘
C++ 超大整数相加、相乘的精确求解,以及10000的阶乘
104 0
35.数值的整数次方
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方
46 0
35.数值的整数次方
|
前端开发 JavaScript 程序员
数值的整数次方
数值的整数次方
数值的整数次方
|
开发者 索引 Python
数值运算
快速学习数值运算
数值运算
076.计算高次方数的尾数
076.计算高次方数的尾数
114 0