#include <iostream> using namespace std; int main() { int liczba; cout<<"Podaj liczbe: "; cin>>liczba; // int a=liczba+liczba; int revA=0, resztaA; while(a!=0) { resztaA=a%10; revA=revA*10+resztaA; a /= 10; } if(a=true) { a=liczba; int a2=a+revA; int sumaA=a+a2; cout<<sumaA; } // return 0; }
Witam, od jakiś 3 tygodni złapała mnie zajawka na programowanie i z pomocą Pana Mirka wydawało mi się, że coś tam łapię aż do momentu gdy wszedłem na SPOJa i zacząłem próbować rozwiązywać zadania.. Kompletnie nie wiem jak do nich się zabrać.. Pustka.. aż w końcu powiedziałem, że nie poddam się i wybrałem jedno i męczę się już drugi dzień, nawet podczas snu śniło mi się rozwiązywanie tego problemu :D Łopatologicznie krok po kroku zrobiłem 1 liczbę natomiast nie mam zrobionego obliczenia ile "DZIAŁAŃ" się wykonało. Nie mówiąc o pozostałych liczbach.. Możecie jakąś wskazówkę mi podsunąć w jaką stronę się poruszyć? http://pl.spoj.com/problems/BFN1/ - link do zadania
EDIT.
Po lekkim odpoczynku przysiadłem znowu.. Udało się napisać funkcję dla reverse i napisałem kod który te liczby pododaje i wychodzi dobrze.. ale nie mam jeszcze funkcji ktora by zliczała która to "SUMA".. aczkolwiek nie wiem również jak zrobić aby to było robione automatycznie np: liczba wczytana z cin + liczba odwrocona z cin = suma, i teraz zeby automatycznie dodało sume + sume odwrocona az do momentu otrzymania palindroma.. domyślam się , że tu for trzeba użyć, ale jak rozpisać funkcję która by to obliczała?
#include <iostream> using namespace std; int a, a2, a3; int b, b2, b3, b4; int c; int odwroconaLiczba(int rev); int main() { cin>>a; cin>>b; cin>>c; if(a>0) { a2=a+a; a3=odwroconaLiczba(a2)+a2; cout<<a3<<" 2"<<endl; } if(b>0) { b2=b+odwroconaLiczba(b); b3=b2+odwroconaLiczba(b2); b4=b3+odwroconaLiczba(b3); cout<<b4<<" 3"<<endl; } if(c>0) { cout<<odwroconaLiczba(c)<<" 0"; } return 0; } int odwroconaLiczba(int liczba) { int reszta, rev=0; while(liczba!=0) { reszta=liczba%10; rev=rev*10+reszta; liczba /= 10; } return rev; }