Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak napisać program, który pokaże lustrane odbicie liczby?

Ostatnio zmodyfikowano 2016-07-29 10:37
Autor Wiadomość
krolik5a
Temat założony przez niniejszego użytkownika
Jak napisać program, który pokaże lustrane odbicie liczby?
» 2016-07-28 13:01:45
Witam, mam problem, ponieważ mam takie zadanie, do którego napisałam program, ale błędny i nie wiem, co zrobiłam w nim źle. Bardzo proszę o pomoc.

Oto treść zdania:

Zapisem lustrzanym liczby naturalnej n nazywamy liczbę złożoną z tych samych cyfr co n, tylko w odwrotnej kolejności. Oto kilka przykładów liczb oraz ich zapisów lustrzanych. Zauważ, że jeśli liczba n ma na końcu zera, to w jej zapisie lustrzanym te zera nie występują:
     123 321
     55600 655
     7 7
Napisz program, który wyznaczy zapis lustrzany danej liczby n.

Wejście:
Wejście zawiera jedną liczbę naturalną n (1 ≤ n ≤ 1000000000).
Wyjście:
Jedyny wiersz wyjścia powinien zawierać zapis lustrzany liczby n.
Przykład:
Dla danych wejściowych:
123
poprawnym wynikiem jest:
321

Napisałam ten program tak:

#include <iostream>
using namespace std;

int main () {
   int n;
   cin >> n;
   int i = 0;
while ( n > 0 ) {
        i = n % 10;
            if (i != 0){
                n /= 10;
                cout << i << endl;
            } else
                n /= 10;
}
}


Pozdrawiam i z góry dziękuję za pomoc.
P-150329
mateczek
» 2016-07-28 14:16:59
C/C++
#include <iostream>
using namespace std;

int main() {
    int n;
    int l = 0; //jak lustro
    cin >> n;
    while( n ) {
        l = l * 10 + n % 10;
        n /= 10;
    }
    cout << l << endl;
}
//cyba że chodzi tylko o wywalenie napisu od końca ??
C/C++
#include <iostream>
using namespace std;

int main() {
    string n;
   
    cin >> n;
    for( string::reverse_iterator i = n.rbegin(); i < n.rend(); i++ ) {
        cout <<* i;
    }
    cout << endl;
}
P-150333
krolik5a
Temat założony przez niniejszego użytkownika
C++
» 2016-07-28 17:25:04
Dziękuję bardzo, właśnie chodzi o to pierwsze. Jeszcze raz wielkie dzięki :)A jeszcze mam jedno pytanie, dlaczego przy while jest samo n?
P-150336
Gibas11
» 2016-07-28 17:41:29
Samo n działa jak n != 0, ponieważ zachodzi tam niejawne rzutowanie bool(n).
P-150337
mateczek
» 2016-07-28 18:03:07
innymi słowy zero to "false" wszystko powyżej to "true"
Klasyczny przykład pętli nieskończonej
C/C++
while( 1 ) {
    //pętla nieskończona
}
P-150338
krolik5a
Temat założony przez niniejszego użytkownika
» 2016-07-28 21:05:50
Dzięki wielkie, to już wszystko jasne.
P-150346
carlosmay
» 2016-07-29 10:37:30
innymi słowy zero to "false" wszystko powyżej to "true"
Wszystko różne od zera to
true
.
P-150357
« 1 »
  Strona 1 z 1