• توجه: در صورتی که از کاربران قدیمی ایران انجمن هستید و امکان ورود به سایت را ندارید، میتوانید با آیدی altin_admin@ در تلگرام تماس حاصل نمایید.

ضرب عدد 100 رقمی در سه رقمی

Reza

متخصص بخش اسکریپت
چگونه یک عدد صد رقمی را در سه رقمی با استفاده از آرایه ها ضرب کنیم.
جواب:
در حالت عادی ضرب عددی صد رقمی در سه رقمی باعث ایجاد خطای Over Flow می گردد. جهت برطرف نمودن این مشکل ما از الگوریتم زیر استفاده می نمائیم.
ابتدا باید عدد 100 رقمی و 3 رقمی گرفته شود سپس ارقام آن به طور جداگانه در خانه های آرایه قرار گیرد. سپس عملیات ضرب را آغاز می کنیم.

Option Base 1 ' باعث می شود اندیس آرایه از یک شروع شود

F=false

Help2[1]=0

Help3[1]=0

Help3[2]=0

I=0​
Temp=Val(InputBox("Enter First Number: ")) ' عدد صد رقمی را وارد کنید
Do While temp>0​
I=i+1​
Hundred=Temp mod 10

Temp=Temp\10​
Loop​
Indx=0​
Temp=Val(InputBox("Enter Second Number: ")) 'عدد سه رقمی را وارد کنید
Do While Indx<=3​
Indx=Indx+1​
Three[Indx]=Temp mod 10​
Temp=Temp\10​
Loop​
For k=1 to 3

For j=1 to i

If overf=true then

Temp=(Three[k]*Hundred[j])+sec

Overf=false

Else:

Temp=Three[k]*Hundred[j]

End if

Select case k

Case 1:

If (Temp>9) and (j

Help1[j]=Temp mod 10

Sec=temp\10

Overf=True

Else if (Temp>9) and (j=i) then

Help1[j]=temp mod 10

Help1[j+1]=temp\10

Overf=false

Else

Help1[j]=temp

End If

Case 2:

If (Temp>9) and (j

Help2[j+1]=Temp mod 10

Sec=Temp\10

Overf=true

Else if (Temp>9) and (j=i) then

Help2[j+1]=Temp mod 10

Help2[j+2]=Temp\10

Overf=False

Else

Help2[j+1]=Temp

End If

Case 3:

If (Temp>9) and (j< SPAN>

Help3[j+2]=Temp mod 10

Sec=Temp\10

Overf=True

Else if (Temp>9) And (j=i) then

Help3[j+2]=Temp mod10

Help3[j+3]=Temp\10

Overf=False

LP=J+3

Else

Help3[j+2]=Temp

End if

End Select

Next j

Next k

For z=1 to LP

If (overf=true) then

Temp=(Help1[z]+Help2[z]+Help3[z])+Sec)

Else

Temp=(Help1[z]+Help2[z]+Help3[z])

End if

If (Temp>9) and (z=LP) then

Final[z]=Temp mod 10

Final[z+1]=Temp\10

Else

Final[z]=Temp

Overf=False

End if

Next z
 
بالا