小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。
#include <stdio.h>
#include <stdlib.h>
int main() {
int i = 0;
char num[10];
scanf("%s", num);
while (num[i] != '\0') {
if (num[i] % 2 == 0) {
num[i] = '0';
}
else {
num[i] = '1';
}
i++;
}
int sum = atoi(num);
printf("%d", sum);
return 0;
} #include <stdio.h>
int main() {
int a,b,c=0;
scanf("%d",&a);
while(b!=0)
{
b=a%10;
a=a/10;
if(b%2==0)
c=10*c+0;
else c=10*c+1;
}
printf("%d",c);
return 0;
} //分析前面某个兄弟的递归写法
int flag = 0;
//不用生成1之前的0
//不能放在递归函数里面,会被初始化成零,则1后面的零就不会被写入
void fun(int num)
{
if (num >= 10)
//如果是num>10,10&1就为零了
{
fun(num / 10);
}
//如果输入1234则生成
//1234
//123
//12
//1 这些数,进到下面的判断,在返回一个值
if (num & 1)
//奇数的二进制第一位为1;偶数的二进制第一位一定为0
//判断个位数是否为奇数
{
printf("1");
flag = 1;
}
else
{
if (flag)
//如果前面没有一就不输出,有1时falg为1,就会输出0
printf("0");
}
}
int main()
{
int n = 0;
scanf("%d", &n);
fun(n);
return 0;
}