Pesquisar este blog

Livros Recomendados

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

quarta-feira, 13 de janeiro de 2021

URI - 1158 - Soma de Ímpares Consecutivos III - Iniciante - C

Plataforma: URI
Problema1158

Enunciado:
Leia um valor inteiro N que é a quantidade de casos de teste que vem a seguir. Cada caso de teste consiste de dois inteiros X e Y. Você deve apresentar a soma de Y ímpares consecutivos a partir de X inclusive o próprio X se ele for ímpar. 
Por exemplo: para a entrada 4 5, a saída deve ser 45, que é equivalente à: 5 + 7 + 9 + 11 + 13 para a entrada 7 4, a saída deve ser 40, que é equivalente à: 7 + 9 + 11 + 13.


Linguagem: C


Solução: 

#include <stdio.h>

int main() {

    int valor;
    long long int x, y;

    scanf("%i ", &valor);

    while (valor--) {

        scanf("%lld %lld", &x, &y);

        x = (x & 1)? x : x + 1;

        printf("%i\n",y * (x + (x + 2 * (y - 1))) >> 1);

    }
    return 0;
}

URI - 1158 - Soma de Ímpares Consecutivos III - Iniciante - C++ - Solução Alternativa

Plataforma: URI
Problema1158

Enunciado:
Leia um valor inteiro N que é a quantidade de casos de teste que vem a seguir. Cada caso de teste consiste de dois inteiros X e Y. Você deve apresentar a soma de Y ímpares consecutivos a partir de X inclusive o próprio X se ele for ímpar. 
Por exemplo: para a entrada 4 5, a saída deve ser 45, que é equivalente à: 5 + 7 + 9 + 11 + 13 para a entrada 7 4, a saída deve ser 40, que é equivalente à: 7 + 9 + 11 + 13.


Linguagem: C++


Solução: 

#include <iostream>

using namespace std;

int main() {

    int valor;
    long long int x, y;

    cin >> valor;

    while (valor--) {

        cin >> x >> y;

        x = (x & 1)? x : x + 1;

        cout << (y * (x + (x + 2 * (y - 1))) >> 1) << endl;

    }
    return 0;
}

sexta-feira, 7 de agosto de 2020

URI - 1158 - Soma de Ímpares Consecutivos III - Iniciante - C++

Plataforma: URI
Problema1158

Enunciado:
Leia um valor inteiro N que é a quantidade de casos de teste que vem a seguir. Cada caso de teste consiste de dois inteiros X e Y. Você deve apresentar a soma de Y ímpares consecutivos a partir de X inclusive o próprio X se ele for ímpar. 
Por exemplo: para a entrada 4 5, a saída deve ser 45, que é equivalente à: 5 + 7 + 9 + 11 + 13 para a entrada 7 4, a saída deve ser 40, que é equivalente à: 7 + 9 + 11 + 13.

Linguagem: C++

Solução:
Este problema pode ser resolvido utilizando um for para fazer o cálculo, entretanto é possível acelerar utilizando a fórmula de progressão aritmética diretamente.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <iostream>

using namespace std; 

int main() 
{
 long long n, x, y;
 cin >> n;
 while(n--){
  cin >> x >> y;
  x = x|1;
  // formula da PA
  cout << y*(x+(x+2*(y-1)))/2 << 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