Jump to content

Archived

This topic is now archived and is closed to further replies.

Sztuczny

Przedział, liczba mająca takie same cyfry.

Recommended Posts

Witam

Mam 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

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)))^10

Gdzie:

/ - 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

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



  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...