Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <malloc.h>
- int pandigital(int* s)
- {
- int m = 0, i;
- for (i=0; i<9; i++) m |= 1 << s[i]-1;
- return m == 0x1FF;
- }
- int main()
- {
- int *a, *b, *c, k=3, s=1, r, i;
- a = malloc(sizeof(int));
- b = malloc(sizeof(int));
- *a = 1;
- *b = 1;
- for (;;)
- {
- c = malloc((s+1) * sizeof(int));
- c[s] = 0;
- r = 0;
- for (i=0; i<s; i++)
- {
- c[i] = a[i] + b[i] + r;
- r = c[i] / 10;
- c[i] %= 10;
- }
- if (r > 0) c[s]=r, s++;
- if (s >= 18)
- {
- if (pandigital(c) && pandigital(c+s-9)) break;
- }
- free(a);
- a = b;
- b = c;
- k++;
- }
- printf("%d\n", k);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement