Son kullanma tarihi geçmiş, bayatlamış bir tarayıcı kullanıyorsanız, Mercedes kullanmak yerine tosbağaya binmek gibi... Web sitelerini düzgün görüntüleyemiyorsanız eh, bi' zahmet tarayıcınızı güncelleyiniz. Modern Web standartlarını karşılayan bir tarayıcı alternatifine göz atın.
Nerede yazacaksınız kodu C#'da yardımcı olabilirim size. Pardon siz algoritma soruyorsunuz. Algoritma ve Akış Diyagramı Örnekleri ( Döngülü Akış Diyagramları )
Sitesine girin ordaki akış şemaları üzerinde değişiklik yapın.
Başla kısmından sonra başlangıç, bitiş, tekmi çiftmi (bool), çarpım mı toplama mı (bool) girişlerini alın.
Daha sonra şemayı ikiye bölün bir kısıma çarpım diğer kısma toplama bölümlerini ekleyeceksiniz. İkisi de aynı olacak sadece biri çarpım diğeri toplam olacak.
Ondan sonra for döngüsünün olacağı algoritma kısımı olacak. Devamını sitedeki bilgilere göre hazırlayabilirsiniz.
Fatih Bey @fozbek,
Arkadaş sadece programın algoritmasını istiyordu.
Sizin programınızdaki hataları düzelttim. Doğrusunu inceleyebilirsiniz.
1. Hatanız int veri tipine değer atamadan kullanamazsınız. Toplam için etkisiz eleman 0'ı, çarpım için etkisiz eleman 1'i değer atamalıydınız.
2. Hatanız int veri tipi 32bit olduğundan ((2^32)/2)-1 = 2,147,483,647 sayısından büyük sayı tutamaz. Bu iş için ulong veri tipi bile yetersiz kalır. Net Framework 4 ile sunulan BigInteger veri tipini kullanmalısınız.
Doğrusu şu şekilde olmalıydı.
Kod:
int tToplam = 0; // 0 olma sebebi toplama işleminin etkisiz elemanı 0'dır.
int cToplam = 0;
// Büyük Sayılar için kullanılan veri tipi BigInteger Net Framework 4.0 ile geldi.
BigInteger tCarpim = 1;
BigInteger cCarpim = 1; // 1 olma sebebi çarpma işleminin etkisiz elemanı 1'dir.
for (int a = 1; a < 100; a++)
{
if (a % 2 == 0)
{
cToplam += a;
cCarpim *= a;
}
else
{
tToplam += a;
tCarpim *= a;
}
}
Console.WriteLine("Tek sayıların çarpımı: {0}", tCarpim);
Console.WriteLine("Tek sayıların toplamı: {0}", tToplam);
Console.WriteLine("Çift sayıların çarpımı: {0}", cCarpim);
Console.WriteLine("Çift sayıların toplamı: {0}", cToplam);
Console.ReadLine();
Sonuç:
Tek sayıların çarpımı: 2725392139750729502980713245400918633290796330545803413734328823443106201171875
Tek sayıların toplamı: 2500
Çift sayıların çarpımı: 342432247025119762482464328952081859751186750537191988279156544634880000000000
Çift sayıların toplamı: 2450
Tek ardışık sayı çarpımı:
Formülü var mı bilmiyorum. Ama içinde 5 sayısı olduğu için ve çift çarpan olmadığı için sonu 5 ile biteceği kesin.
Çift ardışık sayı çarpımı:
Çarpım içerisinde 10, 20, 30, 40, 50, 60, 70, 80, 90 var. Bu sayıların çarpımından 10 tane sıfır sona gelecektir.
Niye 9 gelmiyor. Çünkü 20*50 = 1000 yani 3 sıfır geliyor. Kalan 7 sayıdan da 7 sıfır geliyor, etti 10 sıfır. Sonuca bakın sonra 10 tane sıfır göreceksiniz.
Böylece niye Windows 10 sorusunun da cevabını vermiş olduk.