folder Tahribat.com Forumları
linefolder Visual Basic - Basic - PicBasic ve Türevleri
linefolder Visual Basicde 4Üncü Sayıyı Bulan Kod?



Visual Basicde 4Üncü Sayıyı Bulan Kod?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ~$
    ComputerWolf
    ComputerWolf's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 26/Mart/2003
    Erkek
    yok haci uzun uzaya gelmez oyle asiri uzun cikar hoca kufur eder amk :)...daha iyi bilen bir arkadas bakabilir....matematik az kuvvetli olsa cozeriz :)...amk egitim hayatimiz boyunca kesir sadelestirmesi gorduk faktoriyeli 1 ay falan gosterdiler :))...neyse temiz hava alayim bira kafa acilir belki.

    Hep denedin. Hep yenildin. Olsun yine dene , yine yenil ama daha iyi yenil !
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cukurova
    cukurova's avatar
    Kayıt Tarihi: 21/Aralık/2003
    Erkek
    Sabahın bu saatinde syntax dikkat etmeden en kolay ama uzun süren yoldan direkt algoritmasını yazıyorum.


    1. 1 den 50000 kadar genel bir döngü başlat (For A=145 to 50000 .....next) (mesela : A=562 değerini alsın.)

    2. A sayısının(562) kaç edet rakamdan oluştunu hesaplatmak için değeri string(CStr) e çevir.Sonra Len fonk. ile kaç basamaklı olduğunu bul.


    len(CStr(A)) = 3 basamaklı
    buna Y değeri ata Y=len(CStr(A))=3

    3. basamak sayısı kadar yine döngü oluştur(for k=1 to Y ...next ile) sonra mid gibi bir fonk. her rakamı tek tek al ve faktöryelini bulup topla, faktöryel hesabını için ayrı bir recursive fonks. tanımla.

    Y=3 (basamaklı sayı)
    k=1 ... için mid(A,k,1) 5 olacak.. değeri faktöryel fonks. gönder ve 5! değerini bul
    k=2 ....için mid(A,k,1) 6 olacak ..değeri faktöryel fonks. gönder ve 6! değerini bul
    k=3 ... için mid(A,k,1) 2 olacak ..değeri faktöryel fonks. gönder ve 2! değerini bul

    4.bulduğun sonuçları topla (5!+6!+2!) ve T gibi bir değişkene ata.

    5.şimdi bulduğun T değeri ile A değeri aynı mı bak(IF THEN....). T = A ise tamam Sonuçu label a yazdır."Exit For" ile çıkış yap.

    6.Eşit değil ise (else) boqu yedin, başa dön, counter bir artar. bu sefer A=563 oldu...


    Bu işlem çok uzun sürer ve sayılar çok büyük olduğu için VB de double falan hak getire, kendi değişken tipinizi tanımlamanız lazım.Hız için multi threaded kullanmanız gerekecek, tabii vb de zor.C++ da yazmakda bunun için kasmaya deymez.Anlamayan varsa msnde anlatmaya çalışırım.


    Bu arada herkesin anneler günü kutlu olsun.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ~$
    ComputerWolf
    ComputerWolf's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 26/Mart/2003
    Erkek
    sagol dai bekliyordum cukurova cozse diye ama bizde dogru karar vermisiz kalas bir soru ;)

    Hep denedin. Hep yenildin. Olsun yine dene , yine yenil ama daha iyi yenil !
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    amorf
    amorf's avatar
    Kayıt Tarihi: 18/Temmuz/2005
    Erkek
    Elinize,beyninize sağlık arkadaşlar.Cukurova ve computerwolf toprağımın dediği gibi şöyle bir cevab yayınlamışlar.Belki merak eden olmuştur diye buraya aktarıyorum.

    Private Sub Command1_Click()


    Dim p As Double, w As Double, s As Double, z As Double, l As Double
    Dim q As Double, f As Double
    Text1.Text = ""
    For p = 0 To 9

    For w = 0 To 9

    For s = 0 To 9

    For z = 0 To 9

    For l = 0 To 9

    q = Fact(p) + Fact(w) + Fact(s) + Fact(z) + Fact(l)
    f = ((10000 * p) + (1000 * w) + (100 * s) + (10 * z) + (l))
    If (q = f) Then
    Text1.Text = Val(q)
    End If
    Next

    Next

    Next

    Next

    Next

    End Sub


    Private Function Fact(c As Double) As Double

    If c <= 1 Then
    Fact = 1
    Else
    Fact = c * Fact(c - 1)
    End If

    End Function
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Musket
    Musket's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 09/Haziran/2002
    Erkek
    ee cevap ne ? :D
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ertan
    ertan's avatar
    Kayıt Tarihi: 21/Temmuz/2005
    Erkek
    bulmuşlardı ya 40585 :))

    cukurova hocam dehşet yaa.Harbi anlamadığı,yapamadı şey yok

    Bundan sonra sadece insan olanlarla muhattap olacağım.. Ona göre karşıma gelin...
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ir2
    ir2's avatar
    Bilgi/Destek Madalyası Developer Madalyası
    Kayıt Tarihi: 10/Mayıs/2003
    Erkek
    matematikden anlasam bende yapardım :)
Toplam Hit: 6076 Toplam Mesaj: 28