- Dado um número natural n, verificar se n é, ou não palíndromo. Um número palíndrome é igual a ele mesmo lido ao contrário.
A forma mais fácil é construir o número inverso e compará-lo com o original.
class Palindromo
{
void verifica(int n)
{
int aux, reverso;
aux = n;
reverso = 0;
while (aux != 0) {
reverso = reverso * 10 + aux % 10; /* acrescenta mais um dígito à direita */
aux = aux / 10; /* joga fora esse dígito */
}
if (reverso == n)
System.out.println("É palíndromo");
else
System.out.println("Não é palíndromo");
}
}
Uma outra forma é : resolver este exercício supondo
inicialmente que o número é palíndromo, e em seguida verificando se a
condição de igualdade é válida para os extremos. Sugestão fazer
rastreamento deste exercício em aula.
- Dado um número natural n, na base binária, convertê-lo para a base decimal.
Dado 10010 a saída deve ser 18 pois: 1. 2 4
+ 0. 2 3 + 0. 2 2 + 1. 2 1 + 0. 2 0
= 18.
- Dado um número natural n, na base decimal, convertê-lo para a base binária
class Conversao
{
int binarioDecimal(int n)
{
int dec = 0;
int pot2 = 1;
while (n != 0){
dec = dec + n % 10 * pot2; /* processa um dígito binário */
n = n / 10;
pot2 = pot2 * 2;
}
return dec;
}
int decimalBinario(int n)
{
int dig;
int bin = 0;
int pot = 1;
while (n > 0) {
dig = n % 2; /* próximo dígito binário menos significativo */
n = n / 2; /* remove esse dígito do que resta */
bin = bin + dig * pot; /* adiciona o digito como o mais significativo */
pot = pot * 10;
}
return bin;
}
}
-
Uma propriedade de números naturais é a seguinte: um número sempre
é maior do que o produto dos seus dígitos.
Faça uma classe com dois métodos, um int calculaProd(int
n) que calcula o produto dos dígitos de um número natural n, e um
boolean verificaProp(int n) que verifica se a propriedade é
valida para um número n dado.
class ProdutoDosDigitos
{
int calculaProduto(int n)
{
int produto = 1;
if (n == 0) // caso particular
return 1;
while (n > 0)
{
produto = produto * (n % 10);
n = n / 10;
}
return produto;
}
boolean verificaPropriedade(int n)
{
int produto = calculaProduto(n);
if (produto <= n)
return true;
else
return false;
}
}