C# 任意长度的整数相加

[复制链接]
查看11 | 回复3 | 2010-5-11 09:24:50 | 显示全部楼层 |阅读模式
用C#实现 两个任意长度的 整数相加,也就是输入两个任意长度可能是几十位长度的整数 相加后输出结果。

回复

使用道具 举报

千问 | 2010-5-11 09:24:50 | 显示全部楼层
static string Add(string num1, string num2){ int maxlength = Math.Max(num1.Length, num2.Length); num1 = num1.PadLeft(maxlength, '0'); num2 = num2.PadLeft(maxlength, '0'); byte[] num1Array = num1.ToCharArray().Select(s => (byte)((int)s - 48)).Reverse().ToArray(); byte[] num2Array = num2.ToCharArray().Select(s => (by
回复

使用道具 举报

千问 | 2010-5-11 09:24:50 | 显示全部楼层
竟然是任意长度的,所以整数类型int之类的就不能用了,其实再想一下,用小学的逻辑就会了,从个位数加个位数,满十进一,十位加十位数,加看个位有进一数没。加完继续下面的加。想方法好的话就用递归,不然就用for循环。如果用linq和StringBuilder来做的话,性能上应该算是上乘的了。
回复

使用道具 举报

千问 | 2010-5-11 09:24:50 | 显示全部楼层
每十位分割出一个long类型相加,然后再合成string输出
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行