-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path2867.c
47 lines (37 loc) · 961 Bytes
/
2867.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <math.h>
/*
* -----------------------------------
* | Pedro Daniel Jardim |
* | UFV |
* | 29/02/2020 |
* ----------------------------------
*
*/
void main ()
{
unsigned numeroA, numeroB;
unsigned short casos;
scanf("%hu", &casos);
n=0;
while (n<casos)
{
scanf("%u %u", &numeroA, &numeroB);
// É possível obter-se uma estimativa de quantos dígitos há em um número
// usando logarítmo na base 10;
// log10(1) = 0
// log10(10) = 1
// lo10(100) = 2
// log10(1000) = 3
// O logarítmo é uma função estritamente crescente. Assim sendo
// se arredondarmos para baixo o seu valor, teremos isso:
// de 1 a 9: Resultado é 0;
// de 10 a 99: Resultado é 1;
// de 100 a 999: Resultado é 2;
// ...
// Se somarmos 1 a este valor, teremos o número de digitos na base 10
// de um número.
printf("%.f\n", (floor(log10(pow(numeroA, numeroB)))) + 1);
n++;
}
}