Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- //zero na poczatku
- char* make_palindrome(char* word, char add, int s) {
- char* c = malloc(sizeof(char) * s + 2);
- c[0] = add;
- strcpy(c + 1, word);
- c[strlen(word) + 1] = '\0';
- return c;
- }
- // 0/1 na koncu
- char* make_palindrome2(char* word, int k, char add, int s) {
- char* c = malloc(sizeof(char) * s + 2);
- strcpy(c, word);
- c[strlen(word)] = add;
- c[strlen(word) + 1] = '\0';
- return c;
- }
- int main() {
- int n;
- scanf("%d", &n);
- char even[10000][100] = {{"1"}};
- printf("1\n");
- char temp[10000][100];
- int current_length = 2;
- int index = 0;
- for (int j = 0; j < 12; j++) {
- int l = 0;
- strcpy(temp[0], make_palindrome(even[0], '0', current_length));
- for (int i = 0; i < pow(2, current_length - 1) - 1; i++) {
- strcpy(temp[l + 1], make_palindrome2(even[i], 1, '0', current_length));
- strcpy(temp[l + 2], make_palindrome2(even[i], 1, '1', current_length));
- l += 2;
- }
- for (int i = 0; i < pow(2, current_length) - 1; i++) {
- strcpy(even[i], temp[i]);
- if (index >= n) return;
- printf("%4d.%s\n", index + 1, temp[i]);
- index++;
- }
- current_length += 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment