国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

如何計算大數(shù)減法

在之前,我們已經(jīng)討論了如何進行大數(shù)加法的計算?,F(xiàn)在,我們將要討論如何進行大數(shù)減法的計算。雖然思路和大數(shù)加法類似,但是還是有一些微妙的不同之處。將數(shù)值轉(zhuǎn)為字符串在Flash程序中,我們可以通過在文本框中

在之前,我們已經(jīng)討論了如何進行大數(shù)加法的計算?,F(xiàn)在,我們將要討論如何進行大數(shù)減法的計算。雖然思路和大數(shù)加法類似,但是還是有一些微妙的不同之處。

將數(shù)值轉(zhuǎn)為字符串

在Flash程序中,我們可以通過在文本框中輸入來獲取大數(shù)。這時,大數(shù)已經(jīng)被轉(zhuǎn)換成了字符串。需要注意的是,字符串末尾可能會多出一個不可見的空字符,所以在求長度時需要減去1。以下是將大數(shù)A和B轉(zhuǎn)換為字符串的示例代碼:

```as3

var A:String Text1.text;

var B:String Text2.text;

var j:int A.length - 1;

var k:int B.length - 1;

var len:int j > k ? j : k; //取得最長數(shù)位個數(shù)

```

處理結(jié)果為負數(shù)

首先,我們需要判斷數(shù)位,保證被減數(shù)A大于減數(shù)B。如果A的數(shù)位少于B,則交換兩個數(shù)及數(shù)位個數(shù)。同時,我們需要將結(jié)果標記為負數(shù)。以下是處理結(jié)果為負數(shù)的示例代碼:

```as3

if (j < k) {

var s:String A;

A B;

B s;

j k;

k j;

sign "-";

} else if (Number(A) < Number(B)) {

s A;

A B;

B s;

s j;

j k;

k s;

sign "-";

}

```

補充數(shù)位使兩數(shù)數(shù)位相同

如果兩個數(shù)的數(shù)位不同,我們需要用0在較小的數(shù)的最高位前面添加數(shù)位,使兩個數(shù)的數(shù)位相同。以下是補充數(shù)位的示例代碼:

```as3

while (k < j) {

B "0" B;

k ;

}

```

分割字符到數(shù)組

與其他語言如VB、C不同的是,大數(shù)的最高位在數(shù)組的首位。以下是將大數(shù)A和B分割為數(shù)組X和Y的示例代碼:

```as3

var X:Array [];

var Y:Array [];

for (var i:int len; i > 0; i--) {

X[i-1] (i-1); //字符在字符串中最大索引值比個數(shù)少1

Y[i-1] (i-1);

}

```

模擬數(shù)組對應(yīng)元素相減

接下來,我們需要模擬數(shù)組對應(yīng)元素相減,并考慮可能的退位情況。以下是模擬數(shù)組對應(yīng)元素相減的示例代碼:

```as3

var R:Array [];

for (i len; i > 0; i--) {

if (Number(X[i-1]) < Number(Y[i-1])) {

//不夠減

if (R[i-2] undefined) {

R[i-2] 0;

}

R[i-2] - 1; //從上位借1

R[i-1] Number(X[i-1]) 10 - Number(Y[i-1]); //借1當10

} else {

R[i-1] Number(X[i-1]) - Number(Y[i-1]); //夠減直接減

}

}

```

去掉最高位的0

最后,我們需要去掉結(jié)果中最高位的0。以下是去掉最高位的0的示例代碼:

```as3

var s:Boolean true; //去掉最高位的0

while (s) {

if (R[0] 0) {

//如果最高位有0

();

} else {

s false; //沒有0,退出循環(huán)

}

}

```

處理結(jié)果為負數(shù)的情況

如果結(jié)果為負數(shù),我們需要在結(jié)果前面添加一個負號。以下是處理結(jié)果為負數(shù)的示例代碼:

```as3

if (sign "-") {

R.unshift("-");

}

```

輸出結(jié)果

最后,我們可以將結(jié)果輸出到控制臺或者文本框中。以下是將結(jié)果輸出到控制臺的示例代碼:

```as3

trace((";"));

```

你也可以將結(jié)果輸出到文本框中,例如:

```as3

Text3.text (";");

```

這是一個根據(jù)實踐總結(jié)的經(jīng)驗,絕對原創(chuàng)的方法。希望對你有所幫助!

作者:張志晨

日期:2012.5.16

標簽: