Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 1212. Mostrar todas as postagens
Mostrando postagens com marcador 1212. Mostrar todas as postagens

sábado, 30 de janeiro de 2021

URI (BEECROWD) - 1212 - Aritmética Primária - Matemática - C

Plataforma: URI (BEECROWD)
Problema1212

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;
}

URI - 1212 - Aritmética Primária - Matemática - C++

Plataforma: URI
Problema1212

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;
}

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas