0

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

 
masood1371
masood1371
کاربر نقره ای
تاریخ عضویت : مهر 1388 
تعداد پست ها : 154
محل سکونت : اردبیل

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

چگونه یک عدد صد رقمی را در سه رقمی با استفاده از آرایه ها ضرب کنیم.

جواب:

در حالت عادی ضرب عددی صد رقمی در سه رقمی باعث ایجاد خطای 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[i]=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

یک شنبه 23 آبان 1389  9:13 PM
تشکرات از این پست
titishmili hadisafari
hadisafari
hadisafari
کاربر نقره ای
تاریخ عضویت : اسفند 1388 
تعداد پست ها : 43
محل سکونت : چهارمحال و بختیاری

پاسخ به:ضرب عدد 100 رقمی در سه رقمی

کاش کمی توضیح بیشتر می دادید؛ یا الگوریتم، فلوچارت یا نمودار ns آن را قرار می دادید.

دوشنبه 1 آذر 1389  6:03 PM
تشکرات از این پست
دسترسی سریع به انجمن ها