Witam, rozwiązuje zadanie "PA05_POT - Czy umiesz potęgować" ze strony http://pl.spoj.com/problems/PA05_POT/
Zadanie
Napisz program, który:
wczyta ze standardowego wejścia: podstawę a oraz wykładnik b,
wyznaczy ostatnią cyfrę liczby ab,
wypisze wynik na standardowe wyjście.
Wejście
W pierwszej linii wejścia znajduje się jedna liczba całkowia D (1≤D≤10), oznaczjąca liczbę przypadków do rozważenia. Opis każdego przypadku podany jest w jednym wierszu, zawierającym dwie liczby naturalne a i b oddzielone pojedynczym odstępem (spacją), takie, że (1 ≤ a,b ≤ 1 000 000 000).Wyjście
Dla każdego przypadku z wejścia Twój program powinien wypisać (w osobnej linii dla każdego przypadku z wejścia) cyfrę jedności liczby ab zapisanej dziesiętnie.Przykład
Dla danych wejściowych:
2
2 3
3 3
poprawną odpowiedzią jest:
8
7
Oto mój kod programu:
// SpoiPotegowanie.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <string>
#include <stdio.h>
using namespace std;
int a, b, ile, x;
int ostliczba;
string temp;
int main()
{
cin >> ile;
for (int i = 1; i <= ile; i++)
{
cin >> a >> b;
x = pow(a, b);
cout << x << endl;
}
if (ile > 1)
{
string temp = to_string(x);
cout << temp[temp.size() - 1] << endl;
}
getchar();
getchar();
return 0;
}
Mam błedny wynik. Pierwszy wynik wychodzi prawidłowo a drugi wynik jest tez poprawny ale oprócz ostatniej liczby pokazuje mi takze wynik potegi, którego nie powinno pokazywać. Powinnien w drugim wyniku pokazywać tylko ostatnią liczbę potęgowania.... Co zrobilem w kodzie zle...? Siedzę nad tym parę godzin.. Pozdrawia