A unique number is a number in which no digit is repeated. For example: 102452 is not a unique number as 2 is repeated twice while 2374 is a unique number. So in this article I am sharing the C++ program that check if a number is unique or not.
Also Read: C++ Program to check whether a number is prime number or not
Also Read: C++ Program check whether a number is palindrome or not
Also Read: C++ Program check whether a number is palindrome or not
#include<iostream> #include<stdlib.h> using namespace std; int main() { long num; char str[10]; int a[10]={0},flag=1,i=0; cout<<"Enter any number:"; cin>>num; itoa(num,str,10); //convert number to character array while(str[i]!='\0') { switch(str[i]) { case '0': a[0]++; break; case '1': a[1]++; break; case '2': a[2]++; break; case '3': a[3]++; break; case '4': a[4]++; break; case '5': a[5]++; break; case '6': a[6]++; break; case '7': a[7]++; break; case '8': a[8]++; break; case '9': a[9]++; break; } i++; } for(i=0;i<10;i++) { if(a[i]>1) { flag=0; break; } } if(flag) cout<<"\nNumber is Unique"; else cout<<"\nNumber is Not Unique"; return 0; }
Output
You could just sort this string, and check with one for(). Like this:
#include
#include
#include
int main() {
char num[100];
scanf("%s", num); // read number as string
int len = strlen(num);
std::sort(num, num+len); // sort string
for (int i = 1; i < len; i++) {
if (num[i-1] == num[i]) {
printf("nNumber is Not Unique");
return 0;
}
}
printf("nNumber is Unique");
return 0;
}
Thanks for sharing another solution with us.
I just did it. Hope you like it 🙂
bool is_unique_number(char * snumber) {
for (int j = 0; j <= 9; j++) {
int counter = 0;
for (int i = 0; snumber[i] != '