> 文档中心 > C语言经典习题——小乐乐改数字(牛客网)

C语言经典习题——小乐乐改数字(牛客网)


问题描述:小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。

示例1

输入:

222222
输出:

0

示例2

输入:

123

复制输出:

101
#includeint main(){    int a, b, c, i, n; //定义四个变量    int d = 0;scanf("%d", &n);    //d来接收输入的数值    a = b = n; // a和b都等于输入的数值    for (i = 1; b != 0; i=i * 10)   //i等于1,每次给乘10,因为每次判断个位的值,分别按个位,十位在d中排放,当b等于0时,即n从个位取到最高位时,for语句结束    { c = a % 10; //对10取余就是取各位数字,c等于个位如12345 c=5 b = b / 10; // b是除过个位剩下的数字,列如12345 b=1234 a = b;      // a=1234 if (c % 2 == 0)      //判断c对2取余是否为0,判断这个数是计数还是偶数 {     c = 0;    // 若为偶数c等于0, } else     c = 1;    // 若为奇数c等于1 d= c*i+d;      // d等于每次循环的个位数乘i再加它上一次的值    }    printf("%d", d);  // 打印结果    return 0;}

 注意:本题输出是从个位开始将每个位上面判断的数字按位加和,而不是直接加和