小乐乐喜欢数字,尤其喜欢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; }