zoukankan      html  css  js  c++  java
  • 大数加法

    大数加法

    两个大数相加,采用数组实现

    分析

    1. 分别用string输入两个大数
    2. 倒置两个数组到int数组中,方便处理相加
    3. 函数add返回值为结果的长度
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    #define MAX 1000
    
    int add(string num1, string num2, int sum[]){ // 接受两个输入string作为长整数
    	int len1 = num1.size();
    	int len2 = num2.size();
    	int len = len1 > len2 ? len1 : len2;
    	int num22[MAX] = {0}; //用来存放的num2
    	for(int i = len1 - 1, j = 0; i >= 0; i--, j++)// 将num1反转,方便加法运算
    		sum[j] = num1[i] - '0';
    
    	for(int i = len2 - 1, j = 0; i >= 0; i--, j++)//// 将num2反转,方便加法运算
    		num22[j] = num2[i] - '0';
    
    	for(int i = 0; i < len; i++){
    		sum[i] += num22[i];
    		if(sum[i] > 9){
    			sum[i] -= 10;
    			sum[i + 1]++;
    		}
    	}
    	if(sum[len] > 0) len++;
    	return len;//返回值为结果的长度
    }
    
    int main(){
    	string num1, num2;
    	int sum[MAX];
    	while(cin >> num1 >> num2){
    		int len = add(num1, num2, sum);
    		//cout << len << endl;
    		cout << "sum is : ";//cout << "====================" << endl;
    		for(int i = len - 1; i >= 0; i--){
    			cout << sum[i];
    		}
    		cout << endl;
    	}
    	return 0;
    
    }
    
    
  • 相关阅读:
    web.xml配置文件
    数组去重问题
    Mysql优化
    点赞功能
    IDEA的一些使用小技巧
    Maven
    AJAX
    HTTP响应头拆分/CRLF注入详解
    对寄存器ESP和EBP的一些理解
    汇编调用指令的执行过程
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10230750.html
Copyright © 2011-2022 走看看