C# 20 Basamaklı İki Sayıyı Klasik Toplama
Merhaba arkadaşlar,
Bu yazımızda önceki yıllarda Pascal Olimpiyatlarında sorulan bir soruyu ele alacağız.
Soru: 20 basamaklı iki sayıyı toplayan programı yazınız.
Olimpiyatlara katılan Türk programcılarımız hemen atlamışlar ve long tipinde 2 değişken tanımlamışlar. Peki bir durup düşünelim.
Olimpiyatlarda bu kadar basit bir soru sorulur mu ? Long veri tipine en fazla 19 basamaklı bir sayı sığar. 20 basamağı alan bir veri tipi yoktur.
Bu yüzden klasik toplama yapılması gerekmektedir.
Şimdi programımızı yazmaya başlayalım. Önce tanımlamalarımızı yapalım.
Sayılarımızı string tanımlıyoruz. Neden string tanımladık diye düşünebilirsiniz. Az önce bizim işimizi görebilecek sayısal bir veri tipi olmadığını söylemiştik. Sonra eldeleri tutmak için byte bir değişken ve sonuç için bir değişken tanımlıyoruz.
Şimdi bir döngü oluşturalım.
1. sayının boyutunu alıyoruz ve 1 eksilterek son basamaktan işleme başlanmasını sağlıyoruz. aratoplam adında int bir değişken tanımlayarak seçili basamaklardaki değerlerin convert edilerek elde ile toplayıp değişkene atıyoruz. Eğer aratoplam 10 dan büyükse mod 10 nunu alıp sonuca ekliyoruz ve eldeyi arttırıyoruz, 10dan büyük değilse modunu almadan aratoplamı sonuca ekliyoruz. Son olarak elde var ise sonuca ekliyoruz. Her basamak için işlem sonuna kadar aynı aşamalar gerçekleştiriliyor.
Sayılarımızı ve sonucumuzu yazdırarak işlemimizi tamamlıyoruz.
Başka bir yazıda görüşmek üzere ,
Bol kodlu günler dilerim.
Bir yorum
S.....
Teşekkürler bayan coder güzel bir döngü örneği.