منطق به کار گرفته شده در الگوریتم زیر چیست؟
int main()
{
int i,j,m,n;
clrscr();
printf("enter number : ");
scanf("%d",&n);
char a[100];
for(i=0;i<n;i++)
{
printf("x%d=",i+1);
scanf("%d",&a[i]);
}
for(j=0;j<pow(2,n);j++)
{
m=j;
printf("{");
for(i=0;i<=j;i++)
{
if(m%2==1)
{
printf("%d",a[i]);
printf(",");
m=(m-1)/2;
}
else m=m/2;
}
printf("}\n");
}
getch();
return 0;
}
در واقع علت اینکه از فرد بودن عدد برای بدست آوردن اندیس آرایه استفاده می کنه چیست؟ چه رابطه بین الگوریتم به کار رفته با بدست آوردن زیر مجموعه وجود دارد؟