C# Program to count particular digit in a given number
> C# program to find the occurrence of a digit in a number
> C# program to find frequency of digit in a given number
In the previous posts, i have given C#.Net code to count the occurrences of a character in a string
This program is to count the occurrences of a digit in a given number.
I have written 3 different methods for the same thing.
The first method is quite simple and it doesn’t use any Array, List, built-in methods or Linq expressions.
using System;
using System.Collections.Generic;
using System.Linq;
namespaceDigitCountInNumber
{
class Program
{
static void Main(string[] args)
{
int num, count = 0;
byte digitN; //size:1 byte, Range:0 to 255
Console.WriteLine(“\n *** www.programmingposts.com ***\n”);
Console.WriteLine(” >>>> To count ‘n’ digit in a Number <<<< “);
try
{
Console.Write(“\n Enter a integer number greater than zero: “);
num = Convert.ToInt32(Console.ReadLine());
if (num <= 0)
{
Console.BackgroundColor = ConsoleColor.Red;
Console.WriteLine(“\n Expected number greater than zero.”);
Console.ReadLine(); return;
}
Console.Write(“\n Enter single digit to be counted in number: “);
digitN = Convert.ToByte(Console.ReadLine());
if (digitN > 0 && digitN <= 9)
{
count = countNDigitInNumber(num, digitN);
//count = countNDigitInNumberUsingArray(num, digitN);
//count = countNDigitInNumberUsingList(num, digitN);
Console.WriteLine(“\n The count of {0} in {1} is : {2} “, digitN, num, count);
}
else
{
Console.BackgroundColor = ConsoleColor.Red;
Console.WriteLine(“\n single digit number expected between 0,9.”);
}
}
catch (Exception ex)
{
Console.BackgroundColor = ConsoleColor.DarkRed;
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
static int countNDigitInNumber(int num, byte digitN)
{
int rem, temp, count = 0;
temp = num;
while (num > 0)
{
rem = num % 10; //for getting remainder by modulus with 10
if (digitN == rem)
{
count++;
}
num = num / 10; //for getting quotient by dividing with 10
}
return count;
}
static int countNDigitInNumberUsingArray(int num, byte digitN)
{
int count = 0;
//converting number to single digit int array
int[] digits = num.ToString().ToCharArray().Select(x => (int)Char.GetNumericValue(x)).ToArray();
//getting count of digitN
count = digits.Where(i => i == digitN).Count();
return count;
}
static int countNDigitInNumberUsingList(int num, byte digitN)
{
int count = 0;
//converting number to list of int
List<int> lstdigits = num.ToString().ToCharArray().Select(x => (int)Char.GetNumericValue(x)).ToList<int>();
//getting count of digitN
count = lstdigits.Where(i => i == digitN).Count();
return count;
}
}
}
Sample outputs: