小乐乐改数字题

时间:2022-12-13 11:21:47

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

输入描述:

输入包含一个整数n (0 ≤ n ≤ 109)

输出描述:

输出一个整数,即小乐乐修改后得到的数字。题目来自牛客BC45题

这个题目有几个难点其中之一便是你不知道输入的数字是几位数要想解决这个问题也很简单那便是创建一个字符数组然后使用c语言自带的strlen函数求取长度即可得到输入的数字长度之后运用循环把数字的每一位进行奇偶判断。

#include <stdio.h>
#include<string.h>
int main()
{
char a[100];
int i=0, j=0;
while ((a[i] = getchar()) != '\n')//这里的意思就是循环输入直到输入到换行键。
{
i++;
}
a[i] = '\0';//因为数组标号从零开始所以最后一个数字会存到i-1处我们必需在最后一个位置处加一个数组结束符号因为接下来要使用strlen函数求长度。
int size = strlen(a);
for (i = 0; i < size; i++)
{
if (a[i] % 2 == 0)
{
a[i] = '0';
}
else
a[i] = '1';
}
for (i = 0; i < size; i++)
{
if (a[i] != 0)
j++;
if (j == 0)
continue;//这里就是将数组中元素为0的值给带出去
printf("%c", a[i]);
}
if (j == 0)//这里代表的就是全为0的数
{
printf("0");
}
return 0;
}

运行结果如图

小乐乐改数字题

还有一种便是运用递归法但由于我现在水平不够暂时无法完成另一种方法。