Plataforma: URI (BEECROWD)
Problema: 1212
Enunciado:
As crianças são ensinadas a adicionar vários dígitos da direita para a esquerda, um dígito de cada vez. Muitos acham a operação "vai 1" (em inglês chamada de "carry", na qual o valor 1 é carregado de uma posição para ser adicionado ao dígito seguinte) um desafio significativo. Seu trabalho é para contar o número de operações de carry para cada um dos problemas de adição apresentados para que os educadores possam avaliar a sua dificuldade.
Linguagem: C
Solução:
#include <stdio.h> int main() { unsigned int v1, v2, r1, r2, carries, teveCarry; while (scanf("%u %u", &v1, &v2) != EOF) { if (!v1 && !v2) break; carries = 0; teveCarry = 0; while (v1 || v2) { r1 = v1 % 10; r2 = v2 % 10; v1 /= 10; v2 /= 10; if (r1 + r2 + teveCarry > 9) { carries++; teveCarry = 1; } else teveCarry = 0; } if (!carries) printf("No carry operation.\n"); else if (carries == 1) printf("%u carry operation.\n", carries); else printf("%u carry operations.\n", carries); } return 0; }
Nenhum comentário:
Postar um comentário