Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <algorithm>
- using namespace std;
- int make1(int number) {
- if (number == 0) return 4;
- int b[10], length = 0;
- while (number > 0) {
- int digit = number % 2;
- if (digit == 0) digit = 4;
- if (digit == 1) digit = 7;
- b[length++] = digit;
- number /= 2;
- }
- int result = 0;
- for (int i = 0, j = 1; i < length; i++, j *= 10) {
- result += b[i] * j;
- }
- return result;
- }
- int make2(int number) {
- int b[10], length = 0;
- while (number > 0) {
- int digit = number % 2;
- if (digit == 0) digit = 7;
- if (digit == 1) digit = 4;
- b[length++] = digit;
- number /= 2;
- }
- int result = 0;
- for (int i = 0, j = 1; i < length; i++, j *= 10) {
- result += b[i] * j;
- }
- return result;
- }
- int main() {
- int n, a[1234];
- for (int i = 0; i < 512; i++) {
- a[i] = make1(i);
- }
- for (int i = 1; i < 1024; i++) {
- a[i + 511] = make2(i + 1);
- }
- sort(a, a + 1024);
- scanf("%d", &n);
- for (int i = 0; i < 1024; i++) {
- if (a[i] == n) {
- printf("%d", i + 1);
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement