救救,要崩溃了
  • 板块题目总版
  • 楼主chengqian233
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/10/17 16:20
  • 上次更新2024/10/17 19:16:17
查看原帖
救救,要崩溃了
1489423
chengqian233楼主2024/10/17 16:20
//高精度加法 
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
	//初始化两个字符串,用来存放用户输入的数位
  int i,j,k,w; 
  char la[501];
  char lb[501];
  cin>>la>>lb;
  //用两个数组逆序存放两个数位注意到-'0'将字符数字转化为具体数字 
  int a[strlen(la)];
  int b[strlen(lb)];
  for( w=0;w<strlen(la);w++)
  {
  	a[strlen(la)-1-w]=la[w]-'0';
  }
   for( i=0;i<strlen(lb);i++)
  {
  	b[strlen(lb)-1-i]=lb[i]-'0';
  }
  //将和放到另一个数组中,确定该数组的长度(前两个数组中长度最大的加1) 
    int len;
    if(strlen(la)>strlen(lb))
    len=strlen(la);
    else
    len=strlen(lb);
    int c[len+1]={0};
    //利用竖式的原理求出加和后的数组 
    for( j=0;j<len;j++)
    {
    	c[j]+=a[j]+b[j];
		 c[j+1]+=c[j]/10;
		 c[j]=c[j]%10;
	}
	//最后将数组逆序输出 
    for( k=len-1;k>=0;k--)
    {
    	cout<<c[k];
	}
   return 0;
} 
2024/10/17 16:20
加载中...