Commit 6387d8a9 authored by Waldson's avatar Waldson
Browse files

Adiciona algoritmo para verificar se um número pode ser alcançado através da...

Adiciona algoritmo para verificar se um número pode ser alcançado através da soma de 2 números dentro do array
parent 20389279
#include <iostream>
#include <cstdlib>
void fill_random(int* numeros, size_t n) {
for (size_t i = 0; i < n; ++i) {
numeros[i] = rand() % 100;
}
}
void sort(int* numeros, size_t n) {
for (size_t i = 0; i < n - 1; ++i) {
for (size_t j = i + 1; j < n; ++j) {
if (numeros[j] < numeros[i]) {
int tmp = numeros[j];
numeros[j] = numeros[i];
numeros[i] = tmp;
}
}
}
}
int find_sum(int* numeros, size_t n, int target) {
if (numeros[0] > target) {
return 0;
}
for (size_t left = 0, right = n - 1; left < right;) {
int sum = numeros[left] + numeros[right];
if (sum == target) {
return 1;
}
if (sum > target) {
right--;
} else {
left++;
}
}
return 0;
}
int main(int argc, char* argv[]) {
//começa a contagem 1
if (argc <= 2) {
std::cout << "Usage: " << argv[0] << " <number of elements> <target sum>\n";
return -1;
}
size_t n = std::atoi(argv[1]);
size_t t = std::atoi(argv[2]);
int* numeros = new int[n];
fill_random(numeros, n);
sort(numeros, n);
//começa a contagem 2
std::cout << find_sum(numeros, n, t) << "\n";
//termina a contagem 2
delete[] numeros;
//termina a contagem 1
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment