Zadanie ze SPOJa - Czy umiesz potęgować, BŁĘDNA ODPOWIEDŹ
Ostatnio zmodyfikowano 2016-12-04 22:46
Szym Temat założony przez niniejszego użytkownika |
Zadanie ze SPOJa - Czy umiesz potęgować, BŁĘDNA ODPOWIEDŹ » 2016-12-04 19:34:36 Witam, Mam problem z zadaniem ze SPOJa, mianowicie tym http://pl.spoj.com/problems/PA05_POT/Nigdzie nie znalazłem satysfakcjonującej odpowiedzi, wyświetla mi się ciągle "błędna odpowiedź", domyślam się, że chodzi o przedziały, konkretnie dla a, b należących od 1 do 1000000000, ale nie mam pojęcia jak to rozwiązać. Kod źródłowy napisany przeze mnie wygląda następująco: #include<iostream> #include<cstdlib> #include<math.h> using namespace std; unsigned long int jednosc( unsigned long int a ) { if( a % 10 != 0 ) return a % 10; else return 0; return jednosc( a / 10 ); } int main() { int t; unsigned long int tab[ 10 ]; unsigned long int tab2[ 10 ]; unsigned long int tab3[ 10 ]; cin >> t; if( t >= 1 && t <= 10 ) { for( int i = 0; i < t; i++ ) { cin >> tab[ i ] >> tab2[ i ]; tab3[ i ] = pow( tab[ i ], tab2[ i ] ); } for( int i = 0; i < t; i++ ) { cout << jednosc( tab3[ i ] ) << endl; } } else return 0; }
Czy wie ktoś jak rozwiązać ten problem lub chociaż nakierować mnie na prawidłowe rozwiązanie zadania? [/i] |
|
michal11 |
» 2016-12-04 19:49:21 |
|
SeaMonster131 |
» 2016-12-04 19:50:48 unsigned long int tab3[ 10 ]; tab3[ i ] = pow( tab[ i ], tab2[ i ] ); Myślę, że 1000000000 1000000000 wyjdzie poza zakres unsigned long int. Spróbuj to wykonać bez potęgowania tych liczb, wypisz sobie kilka kolejnych potęg dla kilku cyfr i zobacz, czy istnieje jakaś zależność. |
|
Szym Temat założony przez niniejszego użytkownika |
» 2016-12-04 19:59:08 Dzięki, spróbuje to rozwiązać tak jak mówicie. |
|
pekfos |
» 2016-12-04 21:32:28 Po co ci tu tablice? |
|
Szym Temat założony przez niniejszego użytkownika |
» 2016-12-04 22:43:55 No bo mam określić ile razy od 1 do 10 mam powtórzyć czynność, więc użyłem tablic nie wiem czy słusznie. Początkujący tu |
|
Gibas11 |
» 2016-12-04 22:46:53 int main() { int n; std::cin >> n; while( n-- ) { std::uint64_t a, b; std::cin >> a >> b; } return 0; }
? |
|
« 1 » |