Interview Question
Country: United States
#include<stdio.h>
#include<conio.h>
int sa(int);
int main()
{
int n,y,a;
printf("enter the value\n");
scanf("%d",&n);
printf("enter upper value\n");
scanf("%d",&a);
int i=n;
for( i=n;i<a;i++)
{
y=sa(i);
if(y==1)
{
printf("%d\t",i);
}
}
printf("\n");
getch();
return 0;
}
int sa(int x)
{
int r=0,a[10],i=0,j=0;
int flag=1;
for(i=0;i<=9;i++)
a[i]=11;
i=0;
while(x>0&&flag==1)
{
r=x%10;
j=0;
while(a[j]!=11&& i>=1)
{
if(a[j]==r)
{
flag=0;
break;
}
j++;
}
x=x/10;
a[i]=r;
i++;
}
if(flag==1)
return 1;
else
{
flag=1;
return 0;
}
}
Dude Excellent code..thank u ,But small modifications there....i cleared that, refer ths
#include<stdio.h>
#include<conio.h>
int sa(int);
int main()
{
int n,y,a;
int i=n;
printf("enter the value\n");
scanf("%d",&n);
printf("enter upper value\n");
scanf("%d",&a);
for(i=n;i<a;i++)
{
y=sa(i);
if(y==1)
{
printf("%d\t",i);
}
}
printf("\n");
getch();
return 0;
}
int sa(int x)
{
int r=0,a[10],i=0,j=0;
int flag=1;
for(i=0;i<=9;i++)
a[i]=11;
i=0;
while(x>0&&flag==1)
{
r=x%10;
j=0;
while(a[j]!=11&& i>=1)
{
if(a[j]==r)
{
flag=0;
break;
}
j++;
}
x=x/10;
a[i]=r;
i++;
}
if(flag==1)
return 1;
else
{
flag=1;
return 0;
}
}
or we can do it by using hashing...
#include<stdio.h>
#include<conio.h>
int sa(int);
int b,n;
int main()
{
printf("enter the value\n");
scanf("%d",&n);
printf("enter upper value\n");
scanf("%d",&b);
sa(n);
printf("\n");
getch();
return 0;
}
int sa(int x)
{
int r=0,a[10],i=0;
int flag=x;
if(x>b)
return ;
else
{
while(x > 0)
{
r=x%10;
if(a[r]!=r)
a[r]=r;
else
{
x++;
break;
}
x=x/10;
}
if(x==0)
printf("%d\t",flag);
sa(++flag);
}
}
- Sunny Mitra August 14, 2013