- Katılım
- 23 Eylül 2004
- Mesajlar
- 1,754
- Excel Vers. ve Dili
- Excel 2010 TR
Faktöriyelleri listelemek için ufak bir çalışma. Sitede hesaplaması var fakat listelemesini göremedim.
Listelemeyi daha kısa farklı bir kod ile yapmak mümkün mü?
Listelemeyi daha kısa farklı bir kod ile yapmak mümkün mü?
Kod:
Sub FAKTORIYEL()
Dim A1(1 To 1000000)
Dim A2(1 To 1000000)
Dim A3(1 To 1000000)
Dim Tüm(1 To 10)
'FK = Faktoriyel Sayısı
'Bu Sayıyı en fazla 9 yapın 9! = 362.880 satır. FK 10! yaparsanız excel satırları yetmez.
FK = 9
Ekl = 1
For XX = 1 To FK
A1(1) = A1(1) & ";" & XX
Tüm(XX) = XX
Next XX
For TT = FK - 1 To 1 Step -1
For X3 = 1 To Ekl
Nev = Nev + 1
A2(Nev) = A1(X3)
Next X3
For T1 = TT + 1 To FK
DG1 = Tüm(T1)
DG2 = Tüm(TT)
For X0 = 1 To Nev
AA = Split(A2(X0), ";")
For X2 = 1 To TT - 1
FF = FF & ";" & AA(X2)
Next X2
For X1 = TT To FK
If Int(AA(X1)) = DG1 Then
KK = KK & ";" & DG2
ElseIf Int(AA(X1)) = DG2 Then
KK = KK & ";" & DG1
Else
KK = KK & ";" & AA(X1)
End If
Next X1
A3(X0) = FF & KK
FF = Empty
KK = Empty
Next X0
For Y1 = 1 To Nev
Ekl = Ekl + 1
A1(Ekl) = A3(Y1)
Next Y1
Erase A3()
Next T1
Nev = 0
Erase A2()
Next TT
For Y2 = 1 To Ekl
Cells(Y2, 1) = A1(Y2)
Next Y2
End Sub