C# Console Ödevi

yigit533

Kilopat
Katılım
19 Haziran 2016
Mesajlar
42
Daha fazla  
Cinsiyet
Erkek
Öncelikle merhaba, yazılım hocam sınıfa bir ödev verdi ve ben saat 9'dan beri nasıl yapacağımı çözemiyorum.
1'den 100'e kadar olan asal sayıları bulup 4'lü gruplar halinde toplayıp ekrana yazacak. Örnek olarak 2, 3, 5, 7 ilk grup olacak toplamlarını ekrana yazcak sonra 11, 13, 17, 19 ikinci grup olacak toplamları ekrana yazıcak böyle böyle 100'e kadar 4'lü gruplar oluşturup toplamlarını ekrana yazdıracak kodu yazamıyorum. Ben sadece şu an 1'den 100'e kadar olan asal sayıları buldurtabiliyorum, grup olarak toplama olayını çözemedim. Yardımcı olan herkese teşekkürler :)
 
Son düzenleyen: Moderatör:
Hocam asal sayıları buldurup asallar adlı arrayın içine koyun. gerisine bu kodu yazın gelir. Uykusuzum kusura bakmayın , son asal sayıyı ayarlayamadım.
Edited: Son değer mevzusu da halloldu. En son son kaç tane artık kaldığını hesaplayıp ona göre sonuç çıkartıyor.
C#:
            int sayac = 1;
            int[] asallar = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 };//Bulduğunuz asal sayıları dizeye bu dizeye ekleyin

//sizin yazacağınız kodda kaç tane asal sayı çıkacağını bilmiyor kabul ederek sonsuz döngü oluşturdum
            while (true)
            {
/*4er olarak toplamamı istediniz. sayaç her 4ün katına geldiğinde arkasındaki 4 değeri diziye atayarak topluyor*/
                if (sayac % 4 == 0)
                {
                    int k =  asallar[sayac - 1] + asallar[sayac - 2] + asallar[sayac - 3]+ asallar[sayac-4];
                    Console.WriteLine("{0}", k);                
                }                      
                sayac++;

//sayacın değeri dizi ile aynı değere gelinde artık değeri hesaplayıp toplamlarını ekrana basıyor
                if (asallar.Length == sayac)
                {
                    int artan = asallar.Length % 4;
                    int sondeger = 0;
                    int l = asallar.Length;
                    while(l>asallar.Length-artan)
                    {
                        sondeger =sondeger + asallar[l-1];
                        l--;
                    }
/*01:15de başladım düşünmeye 04:03 şuan yeni bitti. bu kadar zor olmamalıydı. hocanız daha kısa bir yöntem gösterirse benimle paylaşırsanız mutlu olurum*/
                    Console.WriteLine("{0}", sondeger);
                    break;
                }
 
Son düzenleme:
Java:
int[] primes = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97}; // <100 asallar
        StringBuilder sb= new StringBuilder();
        int subSum = 0;
        for (int i = 0; i <primes.length ; i++) {
            subSum += primes[i];
            if((i+1) % 4 ==0){
                sb.append(subSum).append("\n");
                subSum = 0;
            }
        }
        if(subSum!=0)sb.append(subSum);
        System.out.println(sb.toString());
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı