统计由3 4 5 6 7五个数字所能组成的互不相同且无重复数字的三位数的个数,尽量避免使用循环嵌套,请问用三层for循环可以的话,怎么才能避免降低运算复杂度呢
计算个数的话那就是数学题了,N=5个不同的数,能够组合60个不同不重复数字的三位数
#include<stdio.h>
int main(){
int member; //不同数字的元素个数
int digit;//想组合的位数;/
printf("input the Number of elements:");
scanf("%d",&member);
printf("input digit :");
scanf("%d",&digit);
int result=1;
for(int i=0 ; i<digit;i++){
result *= (member-i);
}
printf("所能组成的互不相同且无重复数字的三位数的个数为:%d",result);
return 0;
}
int a[5] = {3,4,5,6,7};
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
{
if(i==j)
continue;
for(int k=0;k<5;k++)
{
if(k==i || k==j)
continue;
printf("%d%d%d\n",a[i],a[j],a[k]);
}
}
#include<stdio.h>
int main(void){
int a[5] = {3,4,5,6,7};
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
{
if(i==j)
continue;
for(int k=0;k<5;k++)
{
if(k==i || k==j)
continue;
printf("%d%d%d\n",a[i],a[j],a[k]);
}
}
}