Myślę, że @mariusz193 ma rację. W szczególności posty jasno sugerują, że masz mieć O(1).
Witam,
Napisalem taki oto kod:
#include
#include
using namespace std;
int main()
{
int n;
long long int x;
cin>>n;
int *l = new int[n];
int *w = new int[n];
for(int i=0;i<n;i++)
cin>>l[i]>>w[i];
for(int i=0;i<n;i++){;
x=pow(l[i],w[i]);
cout<<"x: "<<x<<endl;
cout<<x%10<<endl;
}
return 0;
}
Mogby mi ktos powiedziec dlaczego po wpisaniu danych 1 33 4 moj x wynosi 1185920 a nie 1185921?
SPOJ zaakceptował mi rozwiązanie tego problemu, a tymczasem wiem, że mój kod daje błędny rezultat w Code::Blocks dla niektórych potęg liczb kończących się na 5 (np.: dla 5^2, 5^3, 5^5 daje ostatnią liczbę 4, a dla 5^1 daje 5). Z czego niepoprawny wynik podawany przez codeblocks może wynikać? Kod wydaje się dobry i dla wszystkich innych przypadków daje dobre rezultaty.
Witam , robiac wlasnie to zadanie napotkalem pewien problem
moj kod na ideone: https://ideone.com/WCsQWu9
A mianowicie , dla 3 potergi liczby 5 wychodzi mi wynik 124 , ktos ma pomysl dlaczego?
Witam proszę o podpowiedź jak zrobić modulo z liczby wpisanej jako double.
Jeżeli zmienię na inta to 5 do 2 daje mi jako 24 a to zły wynik.
Sam wpadłem na to że daną trzeba zmienić na double ale w tedy niestety modulo nie chce mi
liczyć. Proszę o jakieś sugestie co zrobić. Mój kod:
#include
#include
#include
using namespace std;
double a, b, wynik, ile;
int main()
{
cin>>ile;
for (int i=0; i<=ile; i++)
{
cin>>a>>b;
wynik=pow(a,b);
cout<<wynik % 10;
}
return 0;
}
Pomocny miły i sugestywny panie mariusz193 dziękuje bardzo za życzliwość i nie ocenioną pomoc w rozwiązaniu mojego problemu i zapewne nieocenionej pomocy udzielonej innym osobom starającym się zrozumieć podstawy programowania.
Jak już wspominałem wcześniej moim problemem nie jest to, że wyskakuje 24 bo ten problem już rozwiązałem przez dodanie danych w formie double.
Problem mam z tym, że funkcja modulo nie działa mi przy danych w tej formie. ;(
I tu rodzi się moje pytanie czy jakoś można można to obejść.
Każda rada oprócz “i tak nie mam zamiaru odpowiadać po raz kolejny na to samo pytanie” będzie pomocna.
Jeżeli znajduje pan czas na pisanie takiego typu bez użytecznych informacji to ma pan za dużo czasu xp
Wątek przejrzałem i nie znalazłem niczego pomocnego.
Ta wersja jest akceptowana przez SPOJ - zupełnie mnie to nie satysfakcjonuje.
Nadal pozostaje problem 5 do 2 końcówka 4 ;(
Jeżeli ktoś chciałby zrobić to naprawdę prawidłowo polecam wersje z double zamiast inta
myślę, że docelowo z tego można uzyskać naprawdę prawidłowy wynik.
Ja się nie poddaje kombinuje dalej. Jeżeli komuś się uda wdzięczny będę za jakiekolwiek podpowiedzi.
Uważam, że nie ma czegoś takiego, że się nie da jak wiele osób tu piszę w wątkach.
#include
#include <math.h>
using namespace std;
int a,b,d;
int p;
int main()
{
cin>>d;
cout<<endl<<endl;
for(int i=0; i<d; i++)
{
cin>>a>>b;
a=a%10;
if (b%4==0)
b=4;
else
b=b%4;
p=pow(a,b);
cout<<p%10<<endl<<endl;
}
return 0;
}
@nekron Jak nie wstawisz ładnie kodu (najlepiej przez ideone) to Ci nie odpowiem bo uznam, że zlewasz nasze uwagi.
Witam, mój kod(w javie) prawdopodobnie nie przechodzi 2 testów, nie wiem co może być błędnego w moim kodzie, proszę o pomoc.
kod: https://ideone.com/QrKHbJ8
w linku błędna prawdopodobnie 3 435435436 i 8 2128963591