假若输入342315 只能输出5,没办法输出13
#include<stdio.h>#include<math.h>
int f(int n)
{
int k = 1;(表示从左往右第几位,同时作为2的指数)
int s = 0;
for (; n != 0;){
if (n % 10 % 2 == 1 && k % 2 != 0) s += pow(2, k - 1);
if (n % 10 % 2 == 0 && k % 2 != 0)
if (n % 10 % 2 == 1 && k % 2 == 0)
if (n % 10 % 2 == 0)
if (k % 2 == 0)
s += pow(2, k - 1);
n = n / 10;
k++;
}
printf("%d", s);
return 0;
}
int main()
{
int n;
scanf("%d", &n);
f(n);
return 0;
}
定义的函数是要在
(从右往左数)第几位上若为同奇偶性,那个位上就用1代替
否则用0代替,
然后输出十进制的数,
不过假若输入342315,只能输出5,
怎么修改好?