zoukankan      html  css  js  c++  java
  • C#-求int数组中连续偶数列的个数

    例如:[3, 3, 2, 2, 2, 4, 3, 5, 4, 6, 3]=>2,2,2,4;4,6 结果为2

          [3, 3, 2,3, 2, 2, 4, 3, 5, 4, 6, 3]=>2;2,2,4;4,6 结果为3

    实现思路:

    将数组取余转换为01数组[3, 3, 2, 2, 2, 4, 3, 5, 4, 6, 3]=>[1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1]

    算出连续为0的个数就是偶数列的个数

    int[] arr = { 3, 3, 2, 2, 2, 4, 3, 5, 4, 6, 3 };
    int[] arrNew = new int[arr.Length];
    for (int i = 0; i < arr.Length; i++)
    {
        Console.Write(arr[i]);
        int result = arr[i] % 2;
        arrNew[i] = result;
    }
    Console.WriteLine();
    int oddCount = 0, evenCount = 0;
    int current = 0, next = 0;
    for (int i = 0; i < arrNew.Length - 1; i++)
    {
        current = arrNew[i];
        Console.Write(current);
        next = arrNew[i + 1];
        if (current == 0 && next != current)
            evenCount++;
        if (current == 1 && next != current)
            oddCount++;
        if (i == arrNew.Length - 2)
        {
            if (next == 0) evenCount++;
            else oddCount++;
        }
    }
    Console.WriteLine(arrNew[arrNew.Length - 1]);
    Console.WriteLine("奇数:{0},偶数:{1}", oddCount, evenCount);
    Console.ReadKey();

  • 相关阅读:
    十进制转任意进制
    整型与字符串转换
    最长递增子序列(动态规划)
    睡眠理发师问题
    区间最值问题(RMQ)
    分解质因子
    数字统计
    After all, tomorrow is another day.
    【USB电平】电脑USB电平
    【有源滤波】滤波基础知识
  • 原文地址:https://www.cnblogs.com/zhyue93/p/CSharp-1.html
Copyright © 2011-2022 走看看