Plataforma: URI
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 <iostream> using namespace std; int main() { unsigned int v1, v2, r1, r2, maior, carries, teveCarry; while (cin >> v1 >> v2) { if (!v1 && !v2) break; carries = 0; teveCarry = 0; maior = (v1 > v2? v1 : v2); 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) cout << "No carry operation."; else { cout << carries << " carry operation"; if (carries == 1) cout << "."; else cout << "s."; } cout << endl; } return 0; }
Nenhum comentário:
Postar um comentário