Tek mi çift mi? sorusu ile ilgili algoritma

Tek mi çift mi algoritması kullanıcı tarafından girilen 4 haneli bir sayının haneleri toplamının tek mi yoksa çift mi olduğunu hesaplayan örnek bir algoritma. C++ ile yapılan bu algoritmanın detayları aşağıdaki şekilde.

Problem:

4-basamaklı N sayısının basamakları toplamının (S) tek veya çift olduğunu belirleyiniz. Tek sayı ise “odd” çift sayı ise “even” yazdırınız.

N = abcd

S = a+b+c+d

1000 ≤ N ≤ 9999.

Problemin Çözümü:

Girdiler

İlk girdi satırına kaç adet deneme yapılacağını belirten T sayısı girilecek.

Sonraki her T satırı, 4 haneli abcd (N) sayılarını içerecek.

Çıktı

odd                (eğer S tek ise)
even              (eğer S çift ise)

Not: Her test aşamasının sonucu ayrı bir satırda gösterilecektir.

[ecko_columns][ecko_columns_left]

Girdiler
2
1234
5679

[/ecko_columns_left][ecko_columns_right]

Çıktılar
even
odd

[/ecko_columns_right][/ecko_columns]

Kaynak Kodlar

#include <iostream>
using namespace std;

int main(){
    
    int test, sayi, toplam=0;
    cin >> test;
    
    for (int k=0;k<test;k++){ cin >> sayi;
        
        while(sayi!=0){
            toplam+=sayi%10;
            sayi = sayi / 10;
        }
        
        if(toplam%2==0){
            cout << "even" << endl;
        }
        else
        {
            cout << "odd" << endl;
        }
        toplam=0;
    }
    
    return 0;
}

 

Bu algoritmada dikkat edilmesi gereken husus şudur. Bir C++ programında tam sayı olarak belirlenen (int) bir değişkenin içerisindeki değer 10 sayısına bölündüğünde elde edilen sayının ondalık kısmı otomatik olarak silinir. Örneğin 1234 sayısını 10 ile böldüğünüzde, bölüm normalde 123,4 olması gerekir. Fakat C++ ile tam sayı olarak belirlenen bu sayı yeniden bir tam sayı değişkeni içerisine atıldığında sonundaki ondalık kısım atılır.

int a = 2156;
a = a /10;
cout << a;

Bu kodun çıktısı 215 olacaktır.