Pesquisar este blog

Livros Recomendados

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

quarta-feira, 13 de janeiro de 2021

URI (BEECROWD) - 1161 - Soma de Fatoriais - Matemática - C

Plataforma: URI (BEECROWD)
Problema1161

Enunciado:
Leia dois valores inteiros M e N indefinidamente. A cada leitura, calcule e escreva a soma dos fatoriais de cada um dos valores lidos. Utilize uma variável apropriada, pois cálculo pode resultar em um valor com mais de 15 dígitos.

Linguagem: C


Solução:

Perceba que para aceitar valores longos, fiz uso do tipo long long int, e com isso a formatação lld. É um exercício simples, mas demanda um tipo maior para não ocorrer overflow.

#include <stdio.h>

long long int fatorial(int n) {
    long long int resultado = 1;
    
    while (n > 1) {
        resultado *= n--;
    }
    
    return resultado;
}

int main() {
    
    int n, m;
    
    while (scanf("%d %d", &n, &m) != EOF)
        printf("%lld\n", fatorial(n) + fatorial(m));
    
    return 0;
}

URI (BEECROWD) - 1161 - Soma de Fatoriais - Matemática - C++ - Solução Alternativa

Plataforma: URI (BEECROWD)
Problema1161

Enunciado:
Leia dois valores inteiros M e N indefinidamente. A cada leitura, calcule e escreva a soma dos fatoriais de cada um dos valores lidos. Utilize uma variável apropriada, pois cálculo pode resultar em um valor com mais de 15 dígitos.

Linguagem: C++


Solução:


#include <iostream>

using namespace std;

long long int fatorial(int n) {
    long long int resultado = 1;
    
    while (n > 1)
        resultado *= n--;

    return resultado;
}

int main() {
    
    int n, m;
    
    while (cin >> n >> m)
        cout << fatorial(n) + fatorial(m) << endl;
    
    return 0;
}

quinta-feira, 9 de abril de 2020

URI (BEECROWD) - 1161 - Soma de Fatoriais - Matemática - C++

Plataforma: URI - BEECROWD
Problema1161

Enunciado:
Leia dois valores inteiros M e N indefinidamente. A cada leitura, calcule e escreva a soma dos fatoriais de cada um dos valores lidos. Utilize uma variável apropriada, pois cálculo pode resultar em um valor com mais de 15 dígitos.

Linguagem: C++

Solução:
Foi feito um vetor vet (long long por causa do tamanho do fatorial) em que foi colocado o valor do fatorial na respectiva posição. Conforme m e n foram lidos, foi verificado se já foi calculado o valor do fatorial para aquele número. Caso não tenha sido calculado, ele será calculado até chegar naquela posição. Então, vet será acessado nas posições m e n, e então seus fatoriais serão somados.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;

int main(){
 int m,n;
 long long vet[21];
 long long sum;
 vet[0] = 1;
 vet[1] = 1; 
 int computed = 1;
 while(cin >> m >> n){
  while(m > computed or n > computed){
   vet[computed+1] = vet[computed]*(computed+1);
   computed++;
  }
  sum = vet[m] + vet[n];
  cout << sum << 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