Ir ao conteúdo

ZecaUrubu

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Tudo que ZecaUrubu postou

  1. Olá, eu fiz em c++, pois existem esses comandos em c++ que facilitam e em C está complicado. A questão é a seguinte:
  2. Bom dia, estou com um código em C++ que retorna quais valores somados em um vetor retornam um certo numero, e gostaria de transforma-lo em C (Professor quer somente em C), alguém poderia ajudar? #include <bits/stdc++.h> using namespace std; void print_vector(vector<vector<int> > v){ cout << "["; for(int i = 0; i<v.size(); i++){ cout << "[ "; for(int j = 0; j <v[i].size(); j++){ cout << v[i][j] << " "; } cout << "]"; } cout << "]"<<endl; } class Solution { public: vector < vector <int> > res; void solve(int idx, vector <int> &a, int b, vector <int> temp){ if(b == 0){ res.push_back(temp); return; } if(idx == a.size())return; if(b < 0)return; sort(a.begin(), a.end()); for(int i = idx; i < a.size(); i++){ if(i > idx && a[i] == a[i-1])continue; temp.push_back(a[i]); solve(i + 1, a, b - a[i], temp); temp.pop_back(); } } vector<vector<int> > combinationSum2(vector<int> &a, int b) { res.clear(); vector <int> temp; solve(0, a, b, temp); return res; } }; int main(){ Solution ob; vector<int> v = {90,54,89,30,5}; print_vector(ob.combinationSum2(v, 149)) ; } Agradeço!
  3. Não sei dizer se foi tirado do UriOnline (parece estar fora do ar), o professor enviou. Eu pensei em usar um vetor para armazenar, mas como vou o primeiro numero do vetor com todos os outros, e depois o segundo e terceiro? e além disso, pode ser mais de 2 números somados, exemplo: Desejado: 10 Pode ser: 3 6 1
  4. Olá pessoal, estou com um trabalho cabuloso em C que esta quebrando minha cabeça, pois segundo o professor tem que usar RECURSIVIDADE e não tenho facilidade com essa bagaça. O complicado está sendo encontrar a lógica, se alguém tiver uma luz, somente pra dar um norte de onde seguir, já está ótimo. Aqui vai o problema: • O programa devera ler da entrada padrão do sistema da seguinte forma. (Exemplo de ENTRADA): 15 --------------------- Primeiro input: Soma desejada. 5 ---------------------- Segundo input: Quantidade de números a serem somados. 8 5 6 2 10 ---------- Terceiro input: Números a serem somados (Perceba que é a quantidade exata do segundo input). • O programa deverá identificar quais números do terceiro input somados chegam ao resultado do primeiro input. • Na saída o programa deverá imprimir um valor 1 ou 0 para cada item [i] (terceiro input), representando se ele foi usado(1) ou não(0). (SAÍDA do exemplo acima): 0 1 0 0 1 ------------ No caso, representa que foi usado o número 5 e 10, de acordo com a posição dele no terceiro input OBS: Todas as entradas (primeiro, segundo e terceiro input) serão lidas por scanf, e não diretamente colocadas no código, pois tem alguns casos testes que o programa deve passar para ser considerado aceito! Alguns casos teste: Entrada: Saída: 0 1 0 1 1 8 4 3 4 1 2 2 Entrada: Saída: 1 0 1 1 0 24 5 8 6 7 9 5

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...