方法一:使用数组
#include<stdio.h>
int main(void)
{
int n;
int a[9];//定义一个数组用于存放每位数字上是奇数还是偶数
int count=0;//定义一个count,用于对位数进行计数
int result=0;
scanf("%d",&n);
while(n!=0)//从最后一位开始检查每一位上是奇数还是偶数,注意a[0]存放的是最后一位,得出数组后需要从数组最后一位开始计算
{
int m=n%10;
if(m%2==0)
a[count++]=0;
else
a[count++]=1;
n=n/10;
}
for(int i=count-1;i>=0;i--)//从数组最后一位开始计算得出的数,也就是原数的顺序来算
result=result*10+a[i];
printf("%d",result);
return 0;
}
使用数组方便在重组数时从高位向地位依次递加
方法二:递归法
#include <stdio.h>
int bian(long long n)
{
int b = n%10;
int c = b%2;
n = n/10;
if( n )
{
return 10 * bian(n) +c; //使用递归时,从里向外计算,也就是从高位到低位累加
}
return c;
}
int main()
{
long long n = 0;
scanf("%lld",&n);
int a = bian(n);
printf("%d",a);
return 0;
}