问题描述:小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。
示例1
输入:
222222
输出:
0
示例2
输入:
123
复制输出:
101
#include<stdio.h>
int 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;
}
注意:本题输出是从个位开始将每个位上面判断的数字按位加和,而不是直接加和