zoukankan      html  css  js  c++  java
  • 华为机试-超长正整数相加

    题目描述
    请设计一个算法完成两个超长正整数的加法。

    接口说明


    /*
    请设计一个算法完成两个超长正整数的加法。
    输入参数:
    String addend:加数
    String augend:被加数
    返回值:加法结果
    */
    public String AddLongInteger(String addend, String augend)
    {
    /*在这里实现功能*/

    return null;
    }



    输入描述:
    输入两个字符串数字


    输出描述:
    输出相加后的结果,string型

    输入例子:
    99999999999999999999999999999999999999999999999999
    1

    输出例子:
    100000000000000000000000000000000000000000000000000

    Java程序实现

    1. import java.util.Scanner;  
    2.   
    3. /** 
    4.  * 超长正整数相加 
    5.  *  
    6.  * @author LiJian 
    7.  * 
    8.  */  
    9. public class Main {  
    10.     @SuppressWarnings("resource")  
    11.     public static void main(String[] args) {  
    12.         // TODO Auto-generated method stub  
    13.         Scanner sc = new Scanner(System.in);  
    14.         String str1 = "";  
    15.         String str2 = "";  
    16.         while (sc.hasNextLine()) {  
    17.             str1 = sc.nextLine();  
    18.             str2 = sc.nextLine();  
    19.             String sResult = AddLongInteger(str1, str2);  
    20.             System.out.println(sResult);  
    21.         }  
    22.     }  
    23.   
    24.     public static String AddLongInteger(String str1, String str2) {  
    25.         if (str1.length() < str2.length()) {  
    26.             String temp = str1;  
    27.             str1 = str2;  
    28.             str2 = temp;  
    29.   
    30.         }  
    31.         char[] charArr1 = str1.toCharArray();  
    32.         char[] charArr2 = str2.toCharArray();  
    33.         int jinWei = 0;  
    34.         int sum = 0;  
    35.         for (int i = charArr1.length - 1, j = charArr2.length - 1; i >= 0; i--) {  
    36.             if (j >= 0) {  
    37.                 sum = Integer.parseInt(charArr1[i] + "") + Integer.parseInt(charArr2[j] + "") + jinWei;  
    38.                 charArr1[i] = String.valueOf(sum % 10).charAt(0);  
    39.                 jinWei = sum / 10;  
    40.                 j--;  
    41.             } else {  
    42.                 sum = Integer.parseInt(charArr1[i] + "") + jinWei;  
    43.                 charArr1[i] = String.valueOf(sum % 10).charAt(0);  
    44.                 jinWei = sum / 10;  
    45.             }  
    46.         }  
    47.         String value = "";  
    48.         for (int i = 0; i < charArr1.length; i++) {  
    49.             value += charArr1[i];  
    50.         }  
    51.         if (jinWei != 0) {  
    52.             return String.valueOf(jinWei) + value;  
    53.         } else {  
    54.             return value;  
    55.         }  
    56.   
    57.     }  
    58.   
    59. }  
  • 相关阅读:
    【Python数据分析】NumPy之数组对象基础
    【Oracle11g】20_函数
    【Word】排版技巧
    cache介绍
    cache verilog实现
    在verilog中使用格雷码
    同步fifo与异步fifo
    AHB总线协议(二)
    Android Handler 消息机制原理解析
    值得推荐的开源C/C++框架和库
  • 原文地址:https://www.cnblogs.com/wwjldm/p/7099206.html
Copyright © 2011-2022 走看看