编写一个函数,返回两个数字的和。输入数字是字符串,函数必须返回一个字符串。

示例:

添加(“123”,“321”);->“444”

添加(“11”,“99”);->“110”

备注:

输入的数字很大,有可能超过ulong长度。

输入是一个只有数字的字符串。

数字是正数。


算法实现:

 1 using System;
2
3 public class Edm
4 {
5 public static string AddNumbers(string num1, string num2)
6 {
7 int n1 = num1.Length;
8 int n2 = num2.Length;
9
10 int maxSize = Math.Max(n1, n2); // 获取系统支持的最大长度
11
12 int carry = 0; // 进位值
13
14 string sum = ""; // 存储结果
15
16 // 从最低位到最高位进行迭代
17 for (int i = 0; i < maxSize; i++)
18 {
19 // 从输入数字中获取当前位的数字,考虑前导零
20 int digit1 = (i < n1) ? num1[n1 - 1 - i] - '0' : 0;
21 int digit2 = (i < n2) ? num2[n2 - 1 - i] - '0' : 0;
22
23 // 将当前位的数字与进位值相加
24 int currentSum = digit1 + digit2 + carry;
25
26 // 更新进位值,并将和的最低位添加到结果中
27 carry = currentSum / 10;
28 sum = (currentSum % 10).ToString() + sum;
29 }
30
31 // 如果还有剩余的进位值,将其添加到结果中
32 if (carry > 0)
33 {
34 sum = carry.ToString() + sum;
35 }
36
37 return sum;
38 }
39 }

测试用例:


Assert.AreEqual("111111111011111111100", Edm.Add("12345678901234567890", "98765432109876543210"));
Assert.AreEqual("1000000000000000000", Edm.Add("999999999999999999", "1"));
Assert.AreEqual("12345678901234567891", Edm.Add("12345678901234567890", "1"));
Assert.AreEqual("11111111110", Edm.Add("99999999999", "1111111111"));
Assert.AreEqual("123456798", Edm.Add("999999999", "123456789"));

【算法】编写一个函数,返回两个正数的和,有可能超过ulong长度的更多相关文章

  1. python练习:编写一个函数isIn,接受两个字符串作为参数,如果一个字符串是另一个字符串的一部分,返回True,否则返回False。

    python练习:编写一个函数isIn,接受两个字符串作为参数,如果一个字符串是另一个字符串的一部分,返回True,否则返回False. 重难点:定义函数的方法.使用str类型的find()函数,可以 ...

  2. 用JS编写一个函数,返回数组中重复出现过的元素

    用JS编写一个函数,返回数组中重复出现过的元素,见下面的代码: , , , , , , , ]; var getRepeat = function (arr) { var obj = {}; , le ...

  3. /编写一个函数,要求从给定的向量A中删除元素值在x到y之间的所有元素(向量要求各个元素之间不能有间断), 函数原型为int del(int A ,int n , int x , int y),其中n为输入向量的维数,返回值为删除元素后的维数

    /** * @author:(LiberHome) * @date:Created in 2019/2/28 19:39 * @description: * @version:$ */ /* 编写一个 ...

  4. scala基础题--函数可以没有返回值案例,编写一个函数,从终端输入一个整数,打印出对应的金字塔

    函数可以没有返回值案例,编写一个函数,从终端输入一个整数,打印出对应的金字塔 import scala.io.StdIn object work02 { def main(args: Array[St ...

  5. 编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成

    编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成.“组合 ”的规则如下: 1). str中的每个字母要么来自于part1,要么来自于part2 ...

  6. 已知一个字符串S 以及长度为n的字符数组a,编写一个函数,统计a中每个字符在字符串中的出现次数

    import java.util.Scanner; /** * @author:(LiberHome) * @date:Created in 2019/3/6 21:04 * @description ...

  7. 编写一个函数来找出所有不带歧义的函数名,也就是 那些只在一个模块里出现过的函数名(erlang)

    erlang程序设计第八章练习题第二题: code:all_loaded()命令会返回一个由{Mod,File}对构成的列表,内含所有Erlang系统 载入的模块.使用内置函数Mod:module_i ...

  8. 有两个指针pa,pb分别指向有两个数,a,b,请写一个函数交换两个指针的指向,也就是让pa指向b,让pb指向a

    题目:有两个指针pa,pb分别指向有两个数,a,b,请写一个函数交换两个指针的指向,也就是让pa指向b,让pb指向a,具体实现如下: #include<stdlib.h> #include ...

  9. H面试程序(1)编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的 下一秒

    编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒. 如输入 2004 年 12 月 31 日 23 时 59 分 59 秒,则输出 2005年 1 月 1 日 0 时 0 分 0 秒. ...

  10. 编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。

    题目描述 编写一个函数,计算字符串中含有的不同字符的个数.字符在ACSII码范围内(0~127).不在范围内的不作统计. 输入描述: 输入N个字符,字符在ACSII码范围内. 输出描述: 输出范围在( ...

随机推荐

  1. PostgreSQL-HA 高可用集群在 Rainbond 上的部署方案

    PostgreSQL 是一种流行的开源关系型数据库管理系统.它提供了标准的SQL语言接口用于操作数据库. repmgr 是一个用于 PostgreSQL 数据库复制管理的开源工具.它提供了自动化的复制 ...

  2. Rocky 9 Linux 平台 vim 9.0 源码包编译安装踩坑记录

    目录 vim 9.0 部署准备环境 vim 9.0 源码包正式部署 vim 9.0 初体验 plug-vim 安装插件 在上一篇 <vim入门实战> 篇,我并没有介绍 Linux 平台源码 ...

  3. HTB靶场之Busqueda

    准备: 攻击机:虚拟机kali和win10(常规操作就直接用本机win10来操作了). 靶机:Inject,htb网站:https://www.hackthebox.com/,靶机地址:https:/ ...

  4. 记一次 Visual Studio 2022 卡死分析

    一:背景 1. 讲故事 最近不知道咋了,各种程序有问题都寻上我了,你说 .NET 程序有问题找我能理解,Windows 崩溃找我,我也可以试试看,毕竟对 Windows 内核也知道一丢丢,那 Visu ...

  5. Error: webpack.optimize.CommonsChunkPlugin has been removed

    最近使用webpack 进行react 依赖抽离时发现原本的webpack.optimize.CommonsChunkPlugin已经不能使用了 打包时提示 Error: webpack.optimi ...

  6. 从0搭建Vue3组件库(十三):引入Husky规范git提交

    为什么要引入 husky? 虽然我们项目中引入了prettier和eslint对代码格式进行了校验,但是多人开发的时候难免依然会有人提交不符合规范的代码到仓库中,如果我们拉取到这种代码还得慢慢对其进行 ...

  7. clusterProfiler 的 GO/KEGG 富集分析用法小结

    以下文章来源于简书,作者 biobin,文章已获原作者授权. 前言 关于 clusterProfiler这个 R 包就不介绍了,网红教授宣传得很成功,功能也比较强大,主要是做 GO 和 KEGG 的功 ...

  8. 六大云端 Jupyter Notebook 平台测评

    有许多方法可以与其他人共享静态 Jupyter 笔记本,例如把它发布在 GitHub 上或通过 nbviewer 链接进行分享. 但是,如果接收人已经安装了 Jupyter Notebook 环境,那 ...

  9. 【Netty】一个RPC实例

    Netty实现简易RPC调用 总体流程: 客户端发起rpc调用请求,封装好调用的接口名,函数名,返回类型,函数参数类型,函数参数值等属性,将消息发送给服务器. 服务器的handler解析rpc请求,调 ...

  10. SpringBoot基础学习(番外9.1)Spring MVC或Spring Boot配置默认访问页面不生效?

    1.tomcat配置默认访问页面 进入 tomcat 的 conf 目录,编辑 web.xml 文件.在 <web-app></web-app> 添加默认访问页面. <w ...