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

这篇具有很好参考价值的文章主要介绍了【算法】编写一个函数,返回两个正数的和,有可能超过ulong长度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

示例:

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

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

备注:

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

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

数字是正数。

 文章来源地址https://www.toymoban.com/news/detail-622102.html


 

算法实现:

 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长度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包