[Algorytmy][C++] Wielokrotność z zerami i jedynkami
-
- 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
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ć...
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] .
Powód: Całe wyrażenia matematyczne umieszczaj w tagach
[Algorytmy][C++] Wielokrotność z zerami i jedynkami
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.
[Algorytmy][C++] Wielokrotność z zerami i jedynkami
Pewnie autorowi chodziło o coś innego no ale jak takie nieścisłości są...
- Medea 2
- 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
Gotowiec, ale niech Ci będzie: .
Kod: Zaznacz cały
https://oeis.org/A079339
-
- 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
Kliknąłem "pomógł" za tego gotowca ale ile tam się naszukałem to nic nie znalazłem 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
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;
}
- Medea 2
- 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
Trochę schludniej
Kod: Zaznacz cały
https://ideone.com/6H24L2
-
- Użytkownik
- Posty: 22211
- 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
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.
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.