Skip to content
Snippets Groups Projects
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
Branches master
No related tags found
No related merge requests found
#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
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment