Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ao e resto de n
umeros inteiros
Ronaldo F. Hashimoto e Carlos H. Morimoto
Nesta aula vamos mostrar alguns aspectos dos operadores / (divisao inteira) e % (resto de divis
ao inteira) para
solucao de problemas em Introducao `a Computacao.
Ao final dessa aula voce dever
a saber:
Calcular o resultado de express
oes aritm
eticas que contenham os operadores de divisao e resto com
n
umeros inteiros.
Utilizar os operadores de divisao e resto de n
umeros inteiros em seus programas.
6.1 Divis
ao Inteira
Vimos na aula de comandos b
asicos (aula 3 - Fundamentos), que o resultado de uma divis
ao inteira e sempre
um n
umero inteiro. Assim, o resultado de 3/4 e zero (e n
ao 0.75, que e um n
umero real) e o resultado de 9/2
e 4, 9/3 e 3, 9/4
e 2, e assim por diante. A parte fracionaria e simplesmente eliminada (ou truncada ao inves de
ser aproximada para um valor inteiro mais pr
oximo).
Agora, o comentario desta aula e para o uso desta operacao na resoluca
o de alguns tipos de exerccios em
Introduca
o a` Computacao.
Existem exerccios em que h
a a necessidade de manipular os dgitos de um n
umero inteiro. Para este tipo de
exerccio, e possvel arrancar o u
ltimo dgito de um n
umero inteiro fazendo uma divis
ao inteira por 10. Por
exemplo, 123/10=12 (123 sem o u
ltimo dgito). Assim, o comando a = n / 10 faz com que a variavel a guarde o
ltimo dgito.
conte
udo da vari
avel n sem o u
6.3 Um Exemplo
Como um exemplo, vamos resolver o seguinte exerccio:
25
Dados um n
umero inteiro n>0, e um dgito d (0<=d<=9), determinar quantas vezes d ocorre em n. Por exemplo, 3
ocorre 2 vezes em 63453.
A sequencia a ser gerada aqui e composta pelos dgitos de n. Para cada dgito b de n, verificar se b e igual a d.
Em caso afirmativo, incrementar um contador.
Para obter um dgito b de n, vamos calcular o resto da divisao de n por 10, ou seja, b = n%10.
ao a seguinte repeticao:
Para gerar a sequencia composta pelos dgitos de n, vamos usar ent
1
2
3
4
while ( n>0) {
b = n % 10; / u
l t i m o d g i t o de n /
n = n / 1 0 ; / a r r a n c a u
l t i m o d g i t o de n /
}
3. Dado um n
umero natural na base decimal, transforma-lo para a base binaria.
Exemplo: Dado 18 a sada devera ser 10010.
4. Qualquer n
umero natural de quatro algarismos pode ser dividido em duas dezenas formadas pelos seus
dois primeiros e dois u
ltimos dgitos.
Exemplos:
1297: 12 e 97.
26
5314: 53 e 14.
Escreva um programa que imprime todos os milhares (4 algarismos) cuja raiz quadrada seja a soma das
dezenas formadas pela divis
ao acima.
Exemplo: raiz de 9801 = 99 = 98 + 01.
umeros a ser impresso.
Portanto 9801 e um dos n
e palndromo se
5. Dizemos que um n
umero natural n
(a) o primeiro algarismo de n
e igual ao seu u
ltimo algarismo,
ultimo algarismo,
(b) o segundo algarismo de n e igual ao pen
(c) e assim sucessivamente.
Exemplos:
567765 e 32423 s
ao palndromos.
ao e palndromo.
567675 n
Dado um n
umero natural n>10 , verificar se n e palndrome.
umeros inteiros, determinar a soma dos n
umeros pares.
6. Dados n>0 e uma sequencia de n n
umeros inteiros positivos i e j diferentes de 0, imprimir em ordem crescente os n
7. Dados n>0 e dois n
primeiros naturais que sao m
ultiplos de i ou de j e ou de ambos.
8. Dados dois n
umeros inteiros positivos, determinar o maximo divisor comum entre eles usando o algoritmo
de Euclides.
Exemplo:
9. Dizemos que um n
umero i e congruente m
odulo m a j se i % m = j % m.
odulo 4 a 39, pois 35 % 4 = 3 = 39 % 4.
Exemplo: 35 e congruente m
odulo m.
Dados inteiros positivos n, j e m, imprimir os n primeiros naturais congruentes a j m
27