that_one_nigga_you_k

collatz

Oct 25th, 2023
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void seq(int n, int **ordens, int *tam) {
  5.     int i = 0;
  6.  
  7.     while (n != 1) {
  8.         (*ordens)[i] = n;
  9.         i++;
  10.         *ordens = (int *)realloc(*ordens, (i + 1) * sizeof(int));
  11.         tam[0] = i;
  12.         if (n % 2 == 0) {
  13.             n = n / 2;
  14.         } else {
  15.             n = 3 * n + 1;
  16.         }
  17.     }
  18. }
  19.  
  20. //salvar as sequencias num arquivo é o próximo passo
  21. //ler em um arquivo vai ser o seguinte
  22.  
  23. int main() {
  24.     int n;
  25.     int *num = NULL;
  26.     int *tamanho = NULL;
  27.  
  28.     num = (int *)malloc(1 * sizeof(int));
  29.     tamanho = (int *)malloc(1 * sizeof(int));
  30.  
  31.     tamanho[0] = 1;
  32.  
  33.     if (num == NULL) {
  34.         printf("Falha na alocação de memória.\n");
  35.         return 1;
  36.     }
  37.  
  38.     printf("Digite o número inicial: ");
  39.     scanf("%d", &n);
  40.  
  41.     seq(n, &num, tamanho);
  42.  
  43.     printf("\na sequencia tem %d casas:\n", tamanho[0]);
  44.  
  45.     for(int i = 0; i < tamanho[0] ; i++){
  46.         printf("%d\n", num[i]);
  47.     }
  48.  
  49.     free(num);
  50.     return 0;
  51. }
  52.  
Add Comment
Please, Sign In to add comment