刚躺下睡觉,一闭眼就想到我之前的算法是错的,会出现重复数,如2.2.3.4.5.6,这就错了。
所以起来改了一下,这样也不用排序了,都是从小到大输出。
这回才有一百多万组排法:1107568
main()
{
int a[6];
unsigned long n=0;
for(a[0]=1;a[0]<=28;a[0]++)
{
for(a[1]=a[0]+1;a[1]<=29;a[1]++)
{
for(a[2]=a[1]+1;a[2]<=30.;a[2]++)
{
for(a[3]=a[2]+1;a[3]<=31;a[3]++)
{
for(a[4]=a[3]+1;a[4]<=32;a[4]++)
{
for(a[5]=a[4]+1;a[5]<=33;a[5]++)
{
n++;
printf("%d.%d.%d.%d.%d.%d ",a[0],a[1],a[2],a[3],a[4],a[5]);
if(n%3==0)printf("\n");
}
}
}
}
}
}
printf("%ld\n",n);
}
所以起来改了一下,这样也不用排序了,都是从小到大输出。
这回才有一百多万组排法:1107568
main()
{
int a[6];
unsigned long n=0;
for(a[0]=1;a[0]<=28;a[0]++)
{
for(a[1]=a[0]+1;a[1]<=29;a[1]++)
{
for(a[2]=a[1]+1;a[2]<=30.;a[2]++)
{
for(a[3]=a[2]+1;a[3]<=31;a[3]++)
{
for(a[4]=a[3]+1;a[4]<=32;a[4]++)
{
for(a[5]=a[4]+1;a[5]<=33;a[5]++)
{
n++;
printf("%d.%d.%d.%d.%d.%d ",a[0],a[1],a[2],a[3],a[4],a[5]);
if(n%3==0)printf("\n");
}
}
}
}
}
}
printf("%ld\n",n);
}
努力—前进—变老—退休—入土