Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zadanie ze SPOJa - Czy umiesz potęgować, BŁĘDNA ODPOWIEDŹ

Ostatnio zmodyfikowano 2016-12-04 22:46
Autor Wiadomość
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:
C/C++
#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]
P-154496
michal11
» 2016-12-04 19:49:21
https://brilliant.org/wiki​/finding-the-last-digit-of-a-po​wer​/

generalnie, w tym zadaniu na pewno nie trzeba liczyć tych potęg, wystarczy tylko zauważyć pewną zależność.
P-154499
SeaMonster131
» 2016-12-04 19:50:48
C/C++
unsigned long int tab3[ 10 ];
tab3[ i ] = pow( tab[ i ], tab2[ i ] );
Myślę, że 10000000001000000000 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ść.
P-154500
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.
P-154503
pekfos
» 2016-12-04 21:32:28
Po co ci tu tablice?
P-154510
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
P-154514
Gibas11
» 2016-12-04 22:46:53
C/C++
int main() {
    int n;
    std::cin >> n;
   
    while( n-- ) {
        std::uint64_t a, b;
        std::cin >> a >> b;
       
        /* Reszta kodu */
    }
   
    return 0;
}
?
P-154515
« 1 »
  Strona 1 z 1