Robin's Space
博客园
首页
博问
闪存
新随笔
联系
订阅
管理
随笔- 278 文章- 0 评论- 5318
两个大数相加比较符合自然运算的算法
功能很简单,就是实现两个很长的大数相加的功能
1
public
static
string
MaxNumAdd(
string
num1,
string
num2)
2
{
3
//
初始设置进位为0
4
int
carry
=
0
;
5
int
length1
=
num1.Length;
6
int
length2
=
num2.Length;
7
Stack
<
int
>
stack1
=
new
Stack
<
int
>
(length1);
8
Stack
<
int
>
stack2
=
new
Stack
<
int
>
(length2);
9
int
max
=
length1;
10
if
(max
<
length2)
11
{
12
max
=
length2;
13
}
14
//
用于存放结果
15
Stack
<
int
>
stack3
=
new
Stack
<
int
>
(max
+
1
);
16
int
size
=
max
-
length1;
17
while
(size
>
0
)
18
{
19
stack1.Push(
0
);
20
size
--
;
21
}
22
size
=
max
-
length2;
23
while
(size
>
0
)
24
{
25
stack2.Push(
0
);
26
size
--
;
27
}
28
for
(
int
i
=
0
; i
<
length1; i
++
)
29
{
30
31
int
num
=
Convert.ToInt32(num1[i].ToString());
32
stack1.Push(num);
33
}
34
for
(
int
i
=
0
; i
<
length2; i
++
)
35
{
36
37
int
num
=
Convert.ToInt32(num2[i].ToString());
38
stack2.Push(num);
39
}
40
//
临时施计算结果
41
int
tempResult
=
0
;
42
for
(
int
i
=
0
; i
<
max; i
++
)
43
{
44
int
n1
=
stack1.Pop();
45
int
n2
=
stack2.Pop();
46
tempResult
=
n1
+
n2
+
carry;
47
stack3.Push(tempResult);
48
if
(tempResult
>
9
)
49
{
50
carry
=
1
;
51
}
52
else
53
{
54
carry
=
0
;
55
}
56
}
57
stack3.Push(carry);
58
StringBuilder sb
=
new
StringBuilder();
59
while
(stack3.Count
>
0
)
60
{
61
sb.Append(stack3.Pop().ToString());
62
}
63
return
sb.ToString().TrimStart(
'
0
'
);
64
}
65
}
作者:
jillzhang
出处:
http://jillzhang.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted @ 2006-10-22 02:06
Robin Zhang
阅读(2621)
评论(6)
编辑
收藏
发表评论
1062297
回复
引用
#1楼
2006-10-22 08:52
DDV[未注册用户]
值得学习!
回复
引用
#2楼
2006-10-22 13:42
yuchen[未注册用户]
int n1 = stack1.Pop();
45 int n2 = stack2.Pop();
46 tempResult = n1 + n2 + carry;
47 stack3.Push(tempResult);
48 if (tempResult > 9)
49 {
50 carry = 1;
51 }
52 else
53 {
54 carry = 0;
55 }
老大这里算法有些失误啊
回复
引用
#3楼
2006-10-22 13:56
yuchen[未注册用户]
int tempResult = 0;
for (int i = 0; i < max; i++)
{
int n1 = stack1.Pop();
int n2 = stack2.Pop();
tempResult = n1 + n2 + carry;
if (tempResult > 9)
{
carry = 1;
}
else
{
carry = 0;
}
if (tempResult > 9)
{
tempResult = tempResult - 10;
stack3.Push(tempResult);
}
else
{
stack3.Push(tempResult);
}
}
回复
引用
#4楼
2006-10-22 13:57
yuchen[未注册用户]
int tempResult = 0;
for (int i = 0; i < max; i++)
{
int n1 = stack1.Pop();
int n2 = stack2.Pop();
tempResult = n1 + n2 + carry;
if (tempResult > 9)
{
carry = 1;
}
else
{
carry = 0;
}
if (tempResult > 9)
{
tempResult = tempResult - 10;
stack3.Push(tempResult);
}
else
{
stack3.Push(tempResult);
}
}
回复
引用
#5楼
2008-02-02 11:55
thf[未注册用户]
int size = max - length1;
17 while (size > 0)
18 {
19 stack1.Push(0);
20 size--;
21 }
22 size = max - length2;
23 while (size > 0)
24 {
25 stack2.Push(0);
26 size--;
27 }
这段代码可以省略
注册用户登录后才能发表评论,请
登录
或
注册
,
返回博客园首页
。
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
春节后礼品回收iPhone成新宠燕窝被冷落
·
分析称苹果近1000亿现金储备最佳用途是派息
·
扎克伯格11件蠢事:曾同意将Facebook卖给雅虎
·
最想要的Entity Framework功能
·
专访Jeffrey Richter:Windows 8是微软的重中之重
»
更多新闻...
最新知识库文章
:
·
高级编程语言的发展历程
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
公告
-
我的简介
姓名:张玉彬
职业:非著名程序员
网名:Robin
专长:分布式应用程序开发
MVP配置
联系方式
好人好孕
版权声明
本站任何言论仅代表个人观点,与作者所在的公司没有任何关系,所有贴子皆以“现状”提供且没有任何担保,同时也没有授予任何权利。
团队
开源项目
开源项目
昵称:
Robin Zhang
园龄:
6年1个月
荣誉:
推荐博客
粉丝:
251
关注:
22
搜索
随笔分类
(245)
.net framework(12)
(rss)
ajax(14)
(rss)
asp.net(47)
(rss)
Design Pattern(4)
(rss)
Linux(3)
(rss)
MS SQL(3)
(rss)
ORM(9)
(rss)
Project Manage(12)
(rss)
Resourc&Link(1)
(rss)
Set&Configuration(2)
(rss)
WCF(45)
(rss)
web protocol(1)
(rss)
web service(18)
(rss)
WPF(3)
(rss)
创业(5)
(rss)
胡思乱想(17)
(rss)
算法(18)
(rss)
系统架构(13)
(rss)
职场点滴(9)
(rss)
自己开发的小工具(2)
(rss)
组件开发(7)
(rss)
随笔档案
(278)
2012年1月 (1)
2011年2月 (1)
2011年1月 (1)
2010年9月 (2)
2010年8月 (5)
2010年4月 (9)
2010年3月 (1)
2009年12月 (2)
2009年10月 (3)
2009年7月 (2)
2009年4月 (1)
2008年12月 (2)
2008年11月 (2)
2008年10月 (4)
2008年8月 (3)
2008年7月 (6)
2008年6月 (7)
2008年5月 (2)
2008年4月 (11)
2008年3月 (16)
2008年2月 (13)
2008年1月 (24)
2007年12月 (8)
2007年10月 (8)
2007年9月 (11)
2007年6月 (14)
2007年5月 (2)
2007年4月 (7)
2007年3月 (9)
2007年2月 (10)
2007年1月 (3)
2006年12月 (1)
2006年11月 (17)
2006年10月 (9)
2006年9月 (15)
2006年8月 (20)
2006年7月 (4)
2006年6月 (2)
2006年5月 (3)
2006年4月 (10)
2006年3月 (3)
2005年12月 (4)
相册
我的相册
WCF大牛
aaron-skonnard
Buddhike
Carlos
Juval
Mehran Nikoo
pedramr
Sahil Malik
WCF Tools团队
我的好友
Anytao
ltp
Q.yuhen
TerryLee
老赵点滴
龙叔
双鱼座
王景
杨建昆
杨正祎
张伟
张子阳
我的站点
爱摄影,爱生活
摄影爱好者的网站
积分与排名
积分 - 1266947
排名 - 24
最新评论
阅读排行榜
评论排行榜
推荐排行榜