Algoritma Sorularım

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SUPERBICO
    SUPERBICO's avatar
    Kayıt Tarihi: 13/Haziran/2008
    Erkek

    Selam muritler java da hazırlamam gerek 2 algoritma ödevi var.içinden çıkamadım.Yardımlarınızı bekliyorum

    1.Girilen sayının asal sayı olup olmadığını söylecek.

    2.Girilen iki string içinde yerleri aynı olmak şartıyla eşit olan karakterlerin bulunup ekrana yazdırma

     

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    1. Soru: Asal sayılar 1 ve kendisinden başka sayıya tam bölünemeyen sayılardır. Tam bölünmeyi de mod işlemi ile belirleriz. Örneğin X tamsayısının asal olup olmadığını bulan C++ programını aşağıda görebilirsiniz.

    [code]

    #include
    #include

    using namespace std;
    bool SayiAsalMi(int sayi)
    {
    bool sonuc = true;

    //istisnalar
    if ( sayi == 0 || sayi == 1) // 0 ve 1
    {
    return false; //asal değildir
    }
    if ( sayi == 2) // 2
    {
    return true; // tek asal çift sayıdır.
    }
    if ( ( sayi % 2 == 0 ) && ( sayi != 2 ) ) //iki haricindeki çift sayilar
    {
    return false; //asal değildir
    }

    for (int i = 3; i < ( sayi / 2 ); ++i)
    {
    if ( sayi % i == 0)
    {
    sonuc = false;
    break;
    }
    }
    return sonuc;
    }
    int main(int argc, char *argv[])
    {
    for (int i = 0; i <= 250; ++i) //0 ile 250 arasındaki asal sayilar
    {
    if ( SayiAsalMi(i) )
    {
    cout << i << " sayisi asaldir!" << endl;
    }
    }

    cout << "Press the enter key to continue ...";
    cin.get();
    return EXIT_SUCCESS;
    }[/code]

    YeniHarman tarafından 04/Kas/12 16:22 tarihinde düzenlenmiştir

    Olaylara karışmayın!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    2. soru: Burada iki stringi de karakter karakter karşılaştırıyoruz. Eğer iki karakter de eşitse +, değilse - koyuyoruz. Yine C++ örneği:

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    void AyniHarfler(const string & str1, const string & str2)
    {
    size_t str1len = str1.length();
    size_t str2len = str2.length();

    int ituzunluk = 0;

    const string * uzunstr = 0;

    if (str1len > str2len)
    {
    ituzunluk = str2len;
    uzunstr = &str1;
    }
    else
    {
    ituzunluk = str1len;
    uzunstr = &str2;
    }

    int i = 0;
    for(; i < ituzunluk; ++i)
    {
    cout << ( ( str1[i] == str2[i] ) ? '+' : '-' ) << i << ". " << str1[i] << endl;
    }
    for ( ; i < uzunstr->length(); ++i)
    {
    cout << '-' << i << ". " << (*uzunstr)[i] << endl;
    }
    }
    int main(int argc, char *argv[])
    {
    string s1("abce");
    string s2("abcd");

    cout << s1 << '\t' << s2 << endl;

    AyniHarfler (s1,s2);

    cout << "Press the enter key to continue ...";
    cin.get();
    return EXIT_SUCCESS;
    }


    Olaylara karışmayın!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SUPERBICO
    SUPERBICO's avatar
    Kayıt Tarihi: 13/Haziran/2008
    Erkek
    teşekkürler hocam.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek

    Bir sayı karekökünden önceki asal sayılara bölünmüyorsa asal sayıdır.  Aşağıda arkadaş bir çözüm vermiş ama daha verimli (hızlı) olsun istiyosan, her bulduğun asal sayıyı array'ine ekle bir sonraki sayı üzerinde onları bölmeyi dene . Bir de döngün n/2 ye kadar değil n kök 2 ye kadar gitsin :)


    There are 10 types of people in the world. Those who knows binary and those who dont...
Toplam Hit: 1232 Toplam Mesaj: 5