Girilen iki sayı arasındaki sayıların toplamını bularak ekrana yazdırma nasıl yapılır?

vpsxx01

Centipat
Katılım
17 Aralık 2022
Mesajlar
104
Daha fazla  
Cinsiyet
Erkek
Merhaba. Okulda verilen ödevdeki şu soruyu yapamadım. Yardım edebilecek varsa güzel olur. Açıklayarak yaparsanız daha iyi olur.

1679150233364.png
 
Son düzenleyen: Moderatör:
Soruyu tam anlamadım ama sanırım, iki sayı arasındaki tüm sayıları birbiri ile topluyor. Şöyle bir mantık kurman gerekiyor; Tüm sayıların toplamını tutan bir değişken aç, bir de döngü. Döngüde a sayısından b sayısına kadar sayma işlemi yap. Ayrıca döngü içerisinde toplam + i (döngü değişkeni) işlemi yap.

Liseye gidiyorsanız yüksek ihtimalle Python veya C#'tır.

C#:
C#:
        Console.Write("birinci sayıyı girin: ");
        int sayi1 = int.Parse(Console.ReadLine()); // konsolu okuduk

        Console.Write("ikinci sayıyı girin: ");
        int sayi2 = int.Parse(Console.ReadLine()); // konsolu okuduk

        int toplam = 0; // toplam sayıyı tuttuğumuz değişken
        for (int i = sayi1; i <= sayi2; i++) // for döngüsü içinde kullanabilmemiz için i değişkeni açtık. i değişkeni sayi2'ye eşit olana kadar sürekli artırdık.
        {
            toplam += i; // toplam değişkenine sürekli artan sayıyı ekledik
        }

        Console.WriteLine("{0} ile {1} arasındaki sayıların toplamı: {2}", sayi1, sayi2, toplam); // konsola yazdırdık

        Console.ReadKey();

Python:
Python:
sayi1 = int(input("Birinci sayıyı girin: ")) # birinci sayıyı aldık
sayi2 = int(input("ikinci sayıyı girin: ")) # ikinci sayıyı aldık

toplam = 0 # toplam sayıyı tuttuğumuz değişken
for i in range(sayi1, sayi2+1): # döngü açtık - sayi1'den sayi2'ye kadar sayar
    toplam += i # toplam değişkenine, sürekli artan sayıyı ekledik

print("{} ile {} arasındaki sayıların toplamı: {}".format(sayi1, sayi2, toplam)) # yazdırdık
 
Son düzenleme:
Etikete Python yazılmış. Python için kod:
# İki sayı alıyoruz.
baslangic_sayisi = int(input("Başlangıç sayısını girin: "))
bitis_sayisi = int(input("Bitiş sayısını girin: "))

# Toplamı hesaplamak için değişken oluşturuyoruz.
toplam = 0

# Döngüde her tam sayıyı toplama ekliyoruz.
for sayi in range(baslangic_sayisi, bitis_sayisi + 1):
toplam += sayi

# Toplamı yazdırıyoruz.
print("İki sayı arasındaki sayıların toplamı:", toplam)
 
Son düzenleyen: Moderatör:
Hesaplanabilecek bir şeyi işlem yaparak elde etmek pek mantıklı değil. 9 basamaklı örnekte 250.000 kat zaman farkı var. Takdir edersiniz ki 999.999.991 sayıyı toplamak yerine 2 çıkarma, 3 toplama 2 çarpma ve bir bölme yapmak bir yerde sonra daha kısa sürüyor. Ama güzel kısmı aynı miktarda işlemin daha 331 sayıyı toplamaktan daha kısa sürmesi.
Bilgisayarımda yavaş olur diye Collab'de hesaplatayım dedim, o da düşünmediğim kadar bekletti.
Başka dillere rahatlıkla çevrilebilir. 4 işlem. Hatta muhtemelen daha iyi bir yolu vardır.

Kod:
import time

def f1(small, large):
    diff = large - small + 1
    return diff * (diff + 1) // 2 + diff * (small - 1)


def f2(small, large):
    return sum(range(small, large + 1))


#small = int(input())
#large = int(input())
small = 9
large = 999_999_999

t1 = time.time()
r1 = f1(small, large)
t2 = time.time()

t3 = time.time()
r2 = f2(small, large)
t4 = time.time()

print(f"f1 found {r1} in {(t2 - t1) * 1_000_000} us")
print(f"f2 found {r2} in {(t4 - t3) * 1_000_000} us")
1679154292460.png


Biriniz de demiyor ki diff parantezine alsana. Öyle 1 çıkarma, 2 toplama, 1 çarpma ve 1 bölmeye düşüyor işlem sayısı.
 
Son düzenleme:

Yeni konular

Geri
Yukarı