100 ile 999 sayılar arasındaki sayıların basamak değerlerinin küpünün toplamı kendisine eşit olan sayıları listbox’a ekle Vb.Net
Soru : 100 ile 999 sayılar arasındaki sayıların basamak değerlerinin küpünün toplamı kendisine eşit olan sayıları listbox’ta görüntüleyen programın kodlarını yazınız. (Form görüntüsü yukarıdadır.)
Cevap: Soruda girilen sayıların rakamlarını küp köklerini alıp toplayınca çıkan değer eğer sayıya eşitse listbox’a eklesin diyor.Mesela 126 için (1)3 + (2)3 +(6)3 eşittir 126 ise listBox’a ekleyecek .Ama (1)3 + (2)3 +(6)3 = 1+8+216=225 yapar. 225 126’a eşit olmadığı için listbox’a eklemeyecek. 153 sayısı için (1)3 + (5)3 +(3)3 =1+125+27=153 yapar. 153 153’e eşit olduğu için listbox’a ekler.Bu işlemleri 100 il1 999 arasında yapan kodları yazalım.Birinci döngüde 100 ile 999 arasındaki sayıları alıyorum. (For k As Integer = 100 To 999 ).İkinci döngüde k değişkenindeki sayının rakamlarının küp köklerini toplatıyorum.Toplattıktan sonra ikinci döngünün dışında bulduğum küpkök toplamını sayı ile karşılaştırıyorum.(If toplam = k) Eşitse listbox’a ekliyor. (listBox1.Items.Add(k))
[code=’vb.net’]
Public Class Form1
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
Dim deger, gecici As String
Dim kup As Integer = 0, toplam As Integer = 0
For k As Integer = 100 To 999
deger = k
For i As Integer = 0 To deger.Length – 1
‘sıfırdan degerdeki rakam sayısı kadar
‘yani deger değişkeni 567 ise 3 defa for döngüsü çalışılır
‘çünkü 567 üç rakamlı
gecici = deger(i) ‘i.ci rakamı gecici değişkenine aktar
kup = (Val(gecici)) ^ 3 ‘gecicinin küpünü al
toplam = toplam + kup ‘toplama kup’ü ekle
Next
If toplam = k Then listBox1.Items.Add(k) ‘toplam k’ya eşitse k’yı listbox’a ekle
toplam = 0 ‘toplamı sıfırla
Next
End Sub
End Class
[/code]

bunu bide math.floor kullanarak yapar mısınız
*
math.floor : ondalık sayının virgüllü kısmını atar sadece tam kısmını alır.Bu soruyla ilgisi yok.
math.floor ile ilgili örnek için link : http://www.gorselprogramlama.com/mathfloor-vbnet
“For i As Integer = 0 To deger.Length – 1” deki -1 “Character is not valid “hatası veriyor altı mavi çizgili neden olabilir acaba
Kodları eksik yazmış olabilirsin.