1 #include<stdio.h> 2 #include<math.h> 3 4 int main(void) 5 { 6 int n; 7 int temp; //个位数 8 int flag; //奇偶标志位,1是奇数,0是偶数 9 int count; //统计数的位数 10 int result; //输出结果 11 12 count = 0; 13 result = 0; 14 15 scanf_s("%d", &n); 16 17 do 18 { 19 temp = n % 10; 20 count++; 21 22 /* 23 数位奇偶规律 24 */ 25 if (count % 2 == 1) 26 { 27 flag = 1; 28 } 29 else 30 { 31 flag = 0; 32 } 33 34 /* 35 奇偶性相同的情况 36 */ 37 if (temp % 2 == flag) 38 { 39 result = result + pow(2, count - 1.0); 40 } 41 42 n = n / 10; 43 44 } while (n != 0); 45 46 printf("%d ", result); 47 48 return 0; 49 }