[Algorytmy][C++] Wielokrotność z zerami i jedynkami

freeszpak
Użytkownik
Użytkownik
Posty: 72
Rejestracja: 13 gru 2014, o 14:26
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 10 razy
Pomógł: 5 razy

[Algorytmy][C++] Wielokrotność z zerami i jedynkami

Post autor: freeszpak »

Dla każdej liczby naturalnej \(\displaystyle{ n}\) istnieje takie \(\displaystyle{ k}\), że \(\displaystyle{ n \cdot k}\) ma w zapisie dziesiętnym same zera i jedynki. Napisz funkcję, która dla zadanego \(\displaystyle{ n}\) obliczy \(\displaystyle{ k}\).

W jaki sposób komputer ma sprawdzić czy liczba składa się z samych zer i jedynek? Czy w ogole istnieje jakis algorytm ktory moglby wyznaczać wartość k? Bo nie mogę takiego wymyślić...
Ostatnio zmieniony 9 kwie 2016, o 22:01 przez Afish, łącznie zmieniany 1 raz.
Powód: Całe wyrażenia matematyczne umieszczaj w tagach [latex] [/latex].
dec1
Użytkownik
Użytkownik
Posty: 714
Rejestracja: 21 mar 2016, o 21:42
Płeć: Mężczyzna
Pomógł: 191 razy

[Algorytmy][C++] Wielokrotność z zerami i jedynkami

Post autor: dec1 »

Czy \(\displaystyle{ k}\) też musi być naturalne? No bo jeśli nie to \(\displaystyle{ k=\frac{10}{n}}\) będzie spełniało warunki zadania.
freeszpak
Użytkownik
Użytkownik
Posty: 72
Rejestracja: 13 gru 2014, o 14:26
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 10 razy
Pomógł: 5 razy

[Algorytmy][C++] Wielokrotność z zerami i jedynkami

Post autor: freeszpak »

całkiem dobre pytanie nie ma o tym nic w poleceniu wiec moze chyba tak byc jak napisałes
dec1
Użytkownik
Użytkownik
Posty: 714
Rejestracja: 21 mar 2016, o 21:42
Płeć: Mężczyzna
Pomógł: 191 razy

[Algorytmy][C++] Wielokrotność z zerami i jedynkami

Post autor: dec1 »

Pewnie autorowi chodziło o coś innego no ale jak takie nieścisłości są...
Awatar użytkownika
Medea 2
Użytkownik
Użytkownik
Posty: 2491
Rejestracja: 30 lis 2014, o 11:03
Płeć: Kobieta
Podziękował: 23 razy
Pomógł: 479 razy

[Algorytmy][C++] Wielokrotność z zerami i jedynkami

Post autor: Medea 2 »

Gotowiec, ale niech Ci będzie:

Kod: Zaznacz cały

https://oeis.org/A079339
.
freeszpak
Użytkownik
Użytkownik
Posty: 72
Rejestracja: 13 gru 2014, o 14:26
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 10 razy
Pomógł: 5 razy

[Algorytmy][C++] Wielokrotność z zerami i jedynkami

Post autor: freeszpak »

Kliknąłem "pomógł" za tego gotowca ale ile tam się naszukałem to nic nie znalazłem :D Tzn coś tam jest ale mocno skomplikowane i chyba nie jest to napisane w c++?
Mam takie coś i działa, może jak ktoś kiedyś będzie szukał to mu się przyda ;)

Kod: Zaznacz cały

#include <iostream>
#include <cassert>
#include <sstream>

using namespace std;

bool czyzerajedynki(int x)
{
    ostringstream strumien;
    strumien << x;                          //zamiena int na string
    string napis = strumien.str();

    for(int y = 0; y < napis.length(); y++)
    {
        if(napis[y]!='0' && napis[y]!='1')
            return 0;
    }
    return 1;
}

int zerojeden(int n)
{
    int k = 1;

    while(czyzerajedynki(n*k)!=1)
    {
        k++;

        if(n*k>214748364) //rozmiar int
        {
            return -1;
        }
    }

    return k;
}

int main()

{
    int p;
    cin >> p;
   cout << zerojeden(p);

    return 0;
}
Awatar użytkownika
Medea 2
Użytkownik
Użytkownik
Posty: 2491
Rejestracja: 30 lis 2014, o 11:03
Płeć: Kobieta
Podziękował: 23 razy
Pomógł: 479 razy

[Algorytmy][C++] Wielokrotność z zerami i jedynkami

Post autor: Medea 2 »

Trochę schludniej

Kod: Zaznacz cały

https://ideone.com/6H24L2
freeszpak
Użytkownik
Użytkownik
Posty: 72
Rejestracja: 13 gru 2014, o 14:26
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 10 razy
Pomógł: 5 razy

[Algorytmy][C++] Wielokrotność z zerami i jedynkami

Post autor: freeszpak »

Rzeczywiście, dobre.
a4karo
Użytkownik
Użytkownik
Posty: 22210
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 38 razy
Pomógł: 3755 razy

[Algorytmy][C++] Wielokrotność z zerami i jedynkami

Post autor: a4karo »

Może to i dobre, ale liczby, na których będziesz pracował mogą miec po kilka tysięcy cyfr i żaden long long long int Ci tego nie załatwi.

W zadanie wcale nie chodzi i wypisywanie cyfr, tylko o metodę wyznaczenia takich liczb.

Wsk: popatrz na resztyy z dzielenia przez \(\displaystyle{ n}\) liczb \(\displaystyle{ 1, 11, 111, 1111, ....}\) aż do liczby, która ma \(\displaystyle{ n}\) cyfr.
ODPOWIEDZ