Şimdi Ara

c++ problem yardım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
4
Cevap
0
Favori
638
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Selam arkadaşlar.Bir program yazmak istiyorum ancak işin içinden çıkamadım.
    C++ programı ile basamak değerleri toplamının kübüne eşit olan dört basamaklı sayıları gösteren program.
    Mesela: 5832 --> 5+8+3+2=18 18*18*18=5832 gibi.
    Şimdiden yardımlar için tesekkurler :)



  • Soruyu cozduk tesekkurler :)

    main() 
    {
    int a=1,b=1,c=1,d=1;
    //f1 foktoriyel 1...
    for(a=1;a<=9;a++){
    a=a;
    for (b=1;b<=9;b++){
    b=b;
    for (c=1;c<=9;c++){
    c=c;
    for (d=1;d<=9;d++){
    d=d;
    if (((a*1000)+(b*100)+(c*10)+d)==(a+b+c+d)*(a+b+c+d)*(a+b+c+d)) printf("Aranan Sayi:%d%d%d%d\n",a,b,c,d);

    }
    }
    }
    }//Gereksiz
    system("PAUSE");
    return 0;
    }
  • Yönteminiz doğru sonuca kötü yolla ulaştırır, evet çözümünüz doğrudur fakat kullanışsızdır.


    Siz 10000 kere işlem yapıyorsunuz. Eğer sizden 8 basamaklı sayılar için isteseydi, 100000000 kere işlem yapmanız gerekecekti.

    Bunun yerine şöyle düşünün : basamak değerlerini toplayacağımız sayı 10000'den büyük değil. yani sonucumuzun kübü 10000'den büyük olamaz. O zaman:

    while (i*i*i<10000) gibi birşey yapabilirsiniz.


    Sizin dediğinizdeki döngü sayısı 10000
    Benim dediğimde döngü sayısı 21 veya 22.

    Aklınızda bulunsun, kolay gelsin.
  • Algoritması güzel geldi bana
  • Yapay Zeka’dan İlgili Konular
    C yardım
    24 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.