📌  相关文章
📜  C# 程序查找出现奇数次的数字(1)

📅  最后修改于: 2023-12-03 15:29:47.993000             🧑  作者: Mango

C#程序查找出现奇数次的数字

在程序开发中,查找一组数字中出现次数为奇数的数字是一个经常出现的问题。本文将介绍如何使用C#语言编写程序来查找出现奇数次的数字。

程序实现

我们可以使用哈希表来实现这个功能。我们首先创建一个空的哈希表,然后遍历给定的数字数组,对于每个数字,我们确定它是否已经在哈希表中出现过。如果该数字已经在哈希表中出现过,则将其出现次数加1,如果没有出现过,则将其添加到哈希表中。最后,我们遍历哈希表并找到出现次数为奇数的数字。

以下是程序的实现:

using System;
using System.Collections.Generic;

class Program
{
    static int FindOddOccurrence(int[] arr, int n)
    {
        Dictionary<int, int> map = new Dictionary<int, int>();
        int i;
        for (i = 0; i < n; i++)
        {
            if (map.ContainsKey(arr[i]))
                map[arr[i]]++;
            else
                map[arr[i]] = 1;
        }

        foreach (var pair in map)
        {
            if (pair.Value % 2 != 0)
                return pair.Key;
        }
        return -1;
    }

    static void Main(string[] args)
    {
        int[] arr = new int[] { 1, 2, 3, 2, 3, 1, 3 };
        int n = arr.Length;

        int result = FindOddOccurrence(arr, n);
        if (result != -1)
            Console.WriteLine("The number with odd occurrence is " + result);
        else
            Console.WriteLine("No number has odd occurrence");

        Console.ReadLine();
    }
}
代码说明
  1. 我们首先创建一个名为FindOddOccurrence的函数来查找出现奇数次的数字。该函数接受两个参数,一个整数数组和该数组的大小。函数返回出现奇数次的数字。

  2. 我们使用Dictionary来创建哈希表。哈希表将存储数字及其出现次数。

  3. 我们遍历数组并将每个数字作为键存储在哈希表中。如果数字已经存在,则对应的值将增加1。

  4. 最后,我们遍历哈希表并找到出现次数为奇数的数字。如果找到这样的数字,则它将作为输出返回。

测试案例

以下是一些测试案例:

输入

int[] arr = new int[] { 1, 2, 3, 2, 3, 1, 3 };

输出

The number with odd occurrence is 3

输入

int[] arr = new int[] { 1, 1, 2, 2, 3, 3, 4, 4, 5 };

输出

No number has odd occurrence
结论

哈希表是查找出现奇数次的数字的有效工具。使用C#编写的程序可以很容易地实现这个功能。