题解 | 小乐乐改数字
小乐乐改数字
https://www.nowcoder.com/practice/fcd30aac9c4f4028b23919a0c649824d
#include <stdio.h>
int main()
{
long long n = 0;
while (scanf("%lld", &n) == 1)
{
int i = 0;//判断多少位数字
int arr1[11];
if (n == 0)
{
printf("0\n");
continue;//跳过后面的代码,进入下一轮
}
//循环次数判断
while (n)
{
arr1[i++] = (n % 10);
n /= 10;
}
//正序数组并对奇偶进行判断
int m = 0;
int arr2[i];
int arr3[11];
int j = 0;
for (m = 0; m < i; m++)
{
arr2[m] = arr1[i - m - 1];
if (arr2[m] % 2 != 0)
{
arr3[j++] = 1;
}
else if(arr2[m] == 2)
{
if (m != 0 && (arr2[m - 1] == arr2[m]))
;
else//不连续的2和第一个数字是2
arr3[j++] = 0;
}
else
arr3[j++] = 0;
}
if (arr3[0] != 0)
printf("%d", arr3[0]);
for (m = 1; m < j; m++)
{
if (arr3[0] == 0 && (arr3[m] == arr3[m - 1])&& arr3[m] == 0)
;
else
printf("%d",arr3[m]);
}
printf("\n");
}
return 0;
}