• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przekroczony limit czasu w zadaniu na Szkopule

0 głosów
837 wizyt
pytanie zadane 6 maja 2022 w C i C++ przez Latarnik Użytkownik (650 p.)
edycja 6 maja 2022 przez Latarnik

Dzień dobry, robię zadania na szkopule i natknąłem się na błąd z przekroczonym  limitem czasu. Niezbyt rozumiem czemu zaistniał tu taki błąd próbowałem program zrobić na inne sposoby ale wtedy nie wychodził poprawny wynik. Czy ktoś mógłby doradzić gdzie leży problem ? 

Oto jest treść zadania :https://szkopul.edu.pl/problemset/problem/hnqWjOVNGN2AM3769svlTYv3/site/?key=statement

Mój kod:

#include<iostream>
using namespace std;

int main()
{
    int potega = 1;
	int liczba_poteg = 0;
    int x;
	cin>>x;
	while(x >= potega)
	{
		potega *= 2;
		liczba_poteg ++;
	}
	cout<<liczba_poteg;
	return 0;
}

Jeszcze mam  jeden kod, też nie działa i jakby ktoś mógł udzielić jakiejś rady, jak poprawić to byłbym bardzo wdzięczny

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
    unsigned int p = 1;
    unsigned int x,y = 2;
	cin>>x;
	while(x > pow(y,p))
	{
	 p++;
	}
	cout<<p;
	return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 6 maja 2022 przez pasjonat_algorytmiki Pasjonat (19,560 p.)
wybrane 6 maja 2022 przez Latarnik
 
Najlepsza
Zauważ, że liczba n może być 10^18, a typ int ma co najwyżej 10^9 Następuje przepełnienie. Musisz zmienić na long long lub unsigned long long.

(Przechodzisz na liczby ujemne) po przepełnieniu.

Podobne pytania

0 głosów
0 odpowiedzi 431 wizyt
pytanie zadane 19 listopada 2017 w SPOJ przez Pytonista Nowicjusz (120 p.)
0 głosów
3 odpowiedzi 738 wizyt
0 głosów
1 odpowiedź 451 wizyt
pytanie zadane 11 grudnia 2016 w C i C++ przez Zerven Nowicjusz (120 p.)

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...