Matheus21 0 Denunciar post Postado Maio 7, 2013 Bom, essa duvida veio depois de eu resolver o problema importante, mesmo assim nesse caso é uma parte importante... Tinha que fazer uma função recursiva "ciclo", que no caso de o numero ser par ele é dividido por 2 (n / 2)e no caso de ser impar é multiplicado por 3 e somado a um (n * 3 + 1). A função deve retornar quantas operações foram feitas até que o numero passado pra ela seja um, e também todos os numeros obtidos em "ciclo". E então, na main, para k ocorrências de numeros executar a função ciclo para cada um desses k numeros. Segue meu codigo: #include <stdio.h> #define MAX 100 int ciclo (int n) { printf ("%d ", n); if (n != 1) { if (n % 2 == 0) { return 1 + ciclo (n / 2); } else { return 1 + ciclo (n * 3 + 1); } } else { return 1; } } int main () { int n, k, i, v[MAX]; scanf ("%d", &k); for (i = 0; i < k; i++) { scanf ("%d", &n); v[i] = n; } for (i = 0; i < k; i++) { printf ("%d\n", ciclo(v[i])); } return 0; } Porém eu tenho que entregar esse codigo ai num corretor automatico (BOCA) e lá está exigindo uma saída para a segunte entrada (exemplo) : 3 10 7 22 10 5 16 8 4 2 177 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 11722 11 34 17 52 26 13 40 20 10 5 16 8 4 2 116 E a saida que eu obtive: 31072210 5 16 8 4 2 1 77 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 1722 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 16 EDIT Foi mal pessoal, suspende aqui descobri sozinho rs Valeu! Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Maio 10, 2013 O problema é a falta de newlines. Sistemas de correção automática como o BOCA são bem rígidos (às vezes rígidos demais). Bom saber que resolveu seu problema. No futuro, poste também a solução pra que o aprendizado fique registrado. Pode ajudar outras pessoas. Compartilhar este post Link para o post Compartilhar em outros sites