SAYILAR = {4, 8, 11, 12, 93, 56, 57, 58, 77} şeklinde olsun. Bu sayı dizisinde ardışık olarak ilerleyen sayıları bulalım.
Ardışık Sayılar
Görüldüğü gibi ardışık olarak giden sayıları işaretledik.
Yapacağımız küçük bir uygulama ile bu sayılar arasında tek tek dolaşacağız. Ama dolaşırken dikkat etmemiz gereken bir husus ise 57 sayısını iki defa saymamalıyız.
Çünkü 57 sayısı hem 56-57 sayı çiftinde hemde 57-58 sayı çiftinde iki defa bulunuyor. Bu yüzden 57 sayısının iki defa sayılmaması gerekmektedir.
ARDIŞIK SAYILAR = {11, 12, 56, 57, 58}
Yapacağımız küçük bir uygulama ile bu sayılar arasında tek tek dolaşacağız. Ama dolaşırken dikkat etmemiz gereken bir husus ise 57 sayısını iki defa saymamalıyız.
Çünkü 57 sayısı hem 56-57 sayı çiftinde hemde 57-58 sayı çiftinde iki defa bulunuyor. Bu yüzden 57 sayısının iki defa sayılmaması gerekmektedir.
Dolayısıyla bizden istenen toplam = 11 + 12 + 56 + 57 + 58 = 194
Düşünce olarak şu şekilde yapmak fikir verir. Dizideki tüm elemanları sırasıyla dolaşıp, mevcut sayının 1 fazlası bir sonraki eleman ise bu iki sayıyı hafızaya alalım. Sonunda ise hafızadaki ardışık sayıları toplayalım.
Algoritmayı Hazırlayalım (JavaScript)
let ardisik_sayilar = []; let sayilar = [4, 8, 11, 12, 93, 56, 57, 58, 77]; for (var i = 0;i<sayilar.length;i++){ if (i < sayilar.length - 1) { let sayi = sayilar[i]; let sonraki_sayi = sayilar[i + 1]; if ((sonraki_sayi - sayi == 1)) { if (ardisik_sayilar.indexOf(sayi) == -1) { ardisik_sayilar.push(sayi); } if (ardisik_sayilar.indexOf(sonraki_sayi) == -1) { ardisik_sayilar.push(sonraki_sayi); } } } } let ardisik_toplam = 0; const dizi = ardisik_sayilar.map(sayi => { return ardisik_toplam += sayi; }); document.write("Ardışık sayıların toplamı: " + ardisik_toplam);