题解 | 小乐乐改数字

小乐乐改数字

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;
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务