超大正整数加法与乘法最笨方法实现

2016-01-29 13:04 5 1 收藏

超大正整数加法与乘法最笨方法实现,超大正整数加法与乘法最笨方法实现

【 tulaoshi.com - ASP.NET 】


using System.Text;

private string AddNumber(string numA, string numB)
{
int lenA=0, lenB=0;
int lenI=0, intTen=0;
int intA=0, intB=0;

StringBuilder result=new StringBuilder("");
lenA=numA.Length;
lenB=numB.Length;
if(lenA>lenB)
lenI=lenA;
else
lenI=lenB;
for(int i=0; i {
if(i intA=Convert.ToInt16(numA.Substring(lenA-i-1,1));
else
intA=0;
if(i intB=Convert.ToInt16(numB.Substring(lenB-i-1,1));
else
intB=0;
int temp=intA+intB+intTen;
result.Insert(0,Convert.ToString((int)temp%10));
intTen=(int)temp /10;
}
if(intTen>0)
result.Insert(0,Convert.ToString(intTen));
return result.ToString();
}
private string MultiNum(string NumA, string NumB)
{
int lenA=0, lenB=0;
int lenI=0;
string result="0";
string AddResult="0";
int Dig=0;

lenA=NumA.Length;
lenB=NumB.Length;
if(lenA>lenB)
{
lenI=lenB;
for(int i=0; i {
AddResult="0";
Dig=Convert.ToInt16(NumB.Substring(lenB-i-1,1));
for(int j=0; j AddResult=AddNumber(NumA,AddResult);
for(int k=0; k AddResult=AddResult + "0";
result=AddNumber(AddResult,result);
}
}
else
{
lenI=lenA;
for(int i=0; i {
AddResult="0";
Dig=Convert.ToInt16(NumA.Substring(lenA-i-1,1));
for(int j=0; j AddResult=AddNumber(NumB,AddResult);
for(int k=0; k AddResult=AddResult + "0";
result=AddNumber(AddResult,result);
}
}
return result;
}
private void button2_Click(object sender, System.EventArgs e)
{
DateTime dtm1=DateTime.Now;
Console.WriteLine(AddNumber("1225225236523456889","1255625622452552"));
Console.WriteLine(dtm1.Millisecond + " " + DateTime.Now.Millisecond );
}
private void button3_Click(object sender, System.EventArgs e)
{
DateTime dtm1=DateTime.Now;
string test="1";
test=MultiNum("453123123156341231651231563121563151213513422","1254564231541321541385435453453124563131541534313543");
Console.WriteLine(test);
Console.WriteLine(dtm1.Millisecond + " " + DateTime.Now.Millisecond ); }

来源:http://www.tulaoshi.com/n/20160129/1488771.html

延伸阅读
标签: Web开发
最近发现两个重写Math.round方法的实现: Math.rand = function(l,u) {      return Math.floor((Math.random() * (u-l+1))+l); } Math.prototype.rand = function(l,u) {      return Math.floor((Math.random() * (u-l+1))+l); } Sample: Math.rand(1,10) 大家说这两个方法都可以吗? 那个是正...
1. 概述 有时候我们需要在web页面上显示一张图,比如说一张地图,而这张地图会比较大。这时候如果我们把一张大图分隔成一组小图,那么客户端的显示速度会明显地感觉块。希望阅读本文对你有所帮助。 2. 实现思路 .NET Framework GDI+ 为我们提供了一组丰富地类来编辑图形图像。有关.NET Framework GDI+的...
构造方法,也就是int方法,不接受任何的参数,而在实际的开发过程中,为了方便,会经常自定义构造方法。因此,以下分别介绍下构造方法和自定义构造方法的实现。 #import Foundation/Foundation.h #import "Iphone.h" int main(int argc, const charchar * argv[]) { /* Iphone * phone1 = [Iphone new]; phone1-_cpu = 1.5; phone1-_ram =...
《超大城市》黑屏问题解决办法分享 你没自己改什么东西的话,电脑重启再执行游戏,可能就好了。 如果有steam结束掉。 《超大城市》存档位置一览 玩家疑问: 3DM版《超大城...
标签: PS PS教程
用Photoshop调整数码照片尺寸的方法摘要:如果您安装了图像处理软件Photoshop,尽管对Photoshop的使用方法不是很熟悉,也可以用Photoshop做照片缩放裁剪等调整数码照片尺寸的简单的工作。用Photoshop调整数码照片尺寸的方法包括照片裁剪和照片整体缩小两种方式。。 如果您安装了图像处理软件Photoshop,尽管对Photoshop的使用方法不是很熟...

经验教程

367

收藏

33
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部