Guest User

Untitled

a guest
Dec 8th, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.37 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <math.h>
  6. //zero na poczatku
  7. char* make_palindrome(char* word, char add, int s) {
  8.     char* c = malloc(sizeof(char) * s + 2);
  9.     c[0] = add;
  10.     strcpy(c + 1, word);
  11.     c[strlen(word) + 1] = '\0';
  12.     return c;
  13. }
  14. // 0/1 na koncu
  15. char* make_palindrome2(char* word, int k, char add, int s) {
  16.     char* c = malloc(sizeof(char) * s + 2);
  17.     strcpy(c, word);
  18.     c[strlen(word)] = add;
  19.     c[strlen(word) + 1] = '\0';
  20.     return c;
  21. }
  22.  
  23.  
  24. int main() {
  25.     int n;
  26.     scanf("%d", &n);
  27.  
  28.     char even[10000][100] = {{"1"}};
  29.     printf("1\n");
  30.  
  31.     char temp[10000][100];
  32.     int current_length = 2;
  33.     int index = 0;
  34.     for (int j = 0; j < 12; j++) {
  35.         int l = 0;
  36.         strcpy(temp[0], make_palindrome(even[0], '0', current_length));
  37.         for (int i = 0; i < pow(2, current_length - 1) - 1; i++) {
  38.             strcpy(temp[l + 1], make_palindrome2(even[i], 1, '0', current_length));
  39.             strcpy(temp[l + 2], make_palindrome2(even[i], 1, '1', current_length));
  40.             l += 2;
  41.         }
  42.         for (int i = 0; i < pow(2, current_length) - 1; i++) {
  43.             strcpy(even[i], temp[i]);
  44.             if (index >= n) return;
  45.             printf("%4d.%s\n", index + 1, temp[i]);
  46.             index++;
  47.        }
  48.         current_length += 1;
  49.     }
  50. }
  51.  
Advertisement
Add Comment
Please, Sign In to add comment