Sztuczny Posted October 27, 2013 Report Share Posted October 27, 2013 WitamMam do napisania program który z podanego przedziału wypisze liczby które mają takie same cyfry. Nie mam pojęcia jak to zrobić. Jeżeli deklaruje przedzialy jako stringi to zadanie wydaje się w miare proste jednak wtedy robi się masakra z pętlą for, jeżeli deklaruje je jako int to wtedy nie wiem jak sprawdzić czy dane liczby mają takie same cyfry.Ktoś ma jakieś pomysły?Pozdrawiam. Link to comment Share on other sites More sharing options...
Sevard Posted October 27, 2013 Report Share Posted October 27, 2013 W jakim języku chcesz to napisać?Cyfry liczby całkowitej można wyciągnąć za pomocą dzielenia całkowitego i dzielenia modulo. Jeśli chcesz wyciągnąć k-tą cyfrę od prawej z liczby n, to robisz coś takiego:(n/(10^(k-1)))^10Gdzie:/ - dzielenie całkowite;^ - potęgowanie,% - dzielenie modulo.W części języków są jednak funkcje, które pozwalają na dużo prostsze rozwiązanie problemu. Link to comment Share on other sites More sharing options...
Sztuczny Posted October 28, 2013 Author Report Share Posted October 28, 2013 Dzieki za pomoc. Program napisałem sam, usiadłem na spokojnie i w kilka chwil powstał poprawny kod. Jest on napisany w c++. Wstawiam jeżeli ktoś by potrzebował. Program jest bez getch() i innych sztucznych "zatrzymywaczy" więc trzeba dodać jeżeli ktoś potrzebuje. Ma też kilka "zabawnych" dodatków, które polecam usunać.Pozdrawiam i załączam kod:# include <iostream>using namespace std;int main (){ int powtarzanie=1; while(powtarzanie) {int przedzialDolny, przedzialGorny;int pomocnicza, dolny,n;cout<<"PODAJ DOLNY PRZEDZIAL W TYM GENIALNYM PROGRAMIE\n";cin>>przedzialDolny;cout<<"PODAJ GORNY PRZEDZIAL\n";cin>>przedzialGorny;if(przedzialDolny>przedzialGorny){ cout<<"bez takich jaj synku, focham sie i nie odpalisz wiecej programu"<<endl; return 0;}for(przedzialDolny;przedzialDolny<=przedzialGorny;przedzialDolny++){ dolny=przedzialDolny; pomocnicza=przedzialDolny%10; bool warunek=true; while(dolny) { n=dolny%10; dolny/=10; if(n!=pomocnicza) { warunek=false; break; } } if (warunek) cout<<przedzialDolny<<endl;}cout<<"Czy chcesz powtorzyc (1-tak, 0-nie)\n";cin>>powtarzanie; }return 0;} Link to comment Share on other sites More sharing options...