Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,950 questions

51,892 answers

573 users

How to check if a number is pandigital in C#

3 Answers

0 votes
// pandigital = a number that makes use of all the digits to exactly once
// for example 15234 is 1 through 5 pandigital

using System;

public class Program
{
    public bool IsPandigital(int num) {
        int digits = 0; int count = 0; int tmp;

        for (; num > 0; num /= 10, ++count) {
            if ((tmp = digits) == (digits |= 1 << (num - ((num / 10) * 10) - 1)))
                return false;
        }

        return digits == (1 << count) - 1;
    }

    public void Main()
    {
        int num = 15234;
		
		if (IsPandigital(num)) {
			Console.WriteLine("Yes");
		} else {
			Console.WriteLine("No");
		}
    }
}



/*
run:

Yes

*/

 



answered Dec 30, 2023 by avibootz
edited Dec 30, 2023 by avibootz
0 votes
// pandigital = a number that makes use of all the digits to exactly once
// for example 15234 is 1 through 5 pandigital

using System;
using System.Linq;

public class Program
{
    static char[][] pandigits = new char[][]{
        "1".ToCharArray(),
        "12".ToCharArray(),
        "123".ToCharArray(),
        "1234".ToCharArray(),
        "12345".ToCharArray(),
        "123456".ToCharArray(),
        "1234567".ToCharArray(),
        "12345678".ToCharArray(),
        "123456789".ToCharArray(),
	};
	
	private static bool IsPandigital(int num) {
		char[] arr = num.ToString().ToCharArray();
		Array.Sort(arr);
		
		return arr.SequenceEqual(pandigits[arr.Length - 1]);
	}
	
	public void Main()
    {
        int num = 15234;
         
        if (IsPandigital(num)) {
            Console.WriteLine("Yes");
        } else {
            Console.WriteLine("No");
        }
    }
}



/*
run:

Yes

*/

 



answered Dec 30, 2023 by avibootz
0 votes
// pandigital = a number that makes use of all the digits to exactly once
// for example 15234 is 1 through 5 pandigital
 
using System;
 
public class Program
{
    public bool IsPandigital(int num) {
        char[] array = num.ToString().ToCharArray();
		Array.Sort(array);
        
		int number1 = (int)Char.GetNumericValue(array[0]);
		
        for (int i = 1; i < array.Length; i++) {
            int number2 = (int)Char.GetNumericValue(array[i]);
			if (number2 != number1 + 1) {
				return false;
			}
			number1 = number2;
		}
 
        return true;
    }
 
    public void Main()
    {
        int num = 15234;
         
        if (IsPandigital(num)) {
            Console.WriteLine("Yes");
        } else {
            Console.WriteLine("No");
        }
    }
}
 
 
 
/*
run:
 
Yes
 
*/


 



answered Dec 30, 2023 by avibootz

Related questions

1 answer 96 views
1 answer 86 views
1 answer 103 views
1 answer 106 views
1 answer 104 views
1 answer 90 views
1 answer 102 views
...