Kod:
int main() {
int first, second = 0;
cout << "Sayiyi girin : " <<endl;
cin >> first;
if(first >= 0) {
while(first != 0) {
second = 10*second + (first%10);
first /= 10;
}
cout << endl;
cout << "Ters cevrilmis sayi : " << second << endl;
}
else
{
first *= -1;
while(first != 0) {
second = 10*second + (first%10);
first /= 10;
}
second *=-1;
cout << endl;
cout << "Ters cevrilmis sayi : " << second << endl;
}
return 0;
}
Bir sayıyı ters çevirmemiz için sayının ilk hali 'first', son halide 'second' olsun. Scanner ı first'e atayarak kullanıcıdan sayı girdikten sonra,
-while döngüsü yapıyoruz ve first sayısı sıfır olmayana kadar devam etmeli, eğer sıfır olursa işlemimiz tamamlanmış olmalı,
-first, 12345 ise , mod 10 unu aldığımızda sondaki 5 i elde etmiş oluruz ama first sayısı aynen kalır, sonra second diye sıfır olan sayıya bunu ekleriz ve işlem sonunda first'ü 10 a böleriz.
her işlemde bu sayıları yanına eklemek için second'ı 10 ile çarparız mod10 a göre bir sonrakini elde ederiz.
-12345 , 5 i mod ile seconda attık, second'ı 10 ile çarptık ve first ü 10 a böldük. first 1234, second 5
-1234 te 4 ü mod ile seconda attık, second'ı 10 ile çarptık ve first ü 10 a böldük. first 123, second 54
.....
en sonda second 54321 olmuş oldu ve onu yazdırıyoruz
-Not; Negatif sayılar içinde eklendi ama kod biraz uzadı
Son düzenleme: