作业帮 > 综合 > 作业

20选4 for循环怎么写?

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/03 18:59:35
20选4 for循环怎么写?
共有20个数,分为4组,去除重复项,以下为输出结果
输出结果为:
1,6,11,16
1,7,12,17
1,8,13,18
以此类推
20选4 for循环怎么写?
是排列还是指组合?1,6,11,16 和 6 1 11 16算重复吗?
再问: 不算重复
再答: 那就成了排列了,我想想看,意思是1-20进行选四的排列数是吧?!
再问: 嗯,嗯,我今天研究来着,没研究出来,可能我的思路有问题,谢谢
再答: 不出现1,1,1,1 或 1,1,2 ,3这种有重复数的就可以哈:按以下代码试试
int i,j,k,m;
for( i=1;i<=20;i++ )
   for( j=1;j<=20;j++ )
       for( k=1;k<=20;k++ )
            for( m=1;m<=20;m++ )
           {
                if ( i!=j && i!=k && i!=m &&
                    j!=k && j!=m && k!=m )
                  printf( "%d,%d,%d,%d\n", i, j,k,m );
           }
再问: 结果不对,这个我已经做出来了,我可以截个图给你看看------------------------以下是我做输出的------
再答: 你是复制的我的代码吗?int main()
{
    const int maxn=4; //修改这个值可以做到n选四,我测试4选4,数大了输出太多
    int num=0;
    int i,j,k,m;
    for( i=1;i<=maxn;i++ )
        for( j=1;j<=maxn;j++ )
            for( k=1;k<=maxn;k++ )
                for( m=1;m<=maxn;m++ )
                {
                    if ( i!=j && i!=k && i!=m && j!=k && j!=m && k!=m )
                    {
                        printf( "%d,%d,%d,%d\n", i, j,k,m );
                        num++;
                        //getchar();
                    }
                }
    printf("num=%d\n", num );
    return 0;
}
四选四,结果如下:
1,2,3,4
1,2,4,3
1,3,2,4
1,3,4,2
1,4,2,3
1,4,3,2
2,1,3,4
2,1,4,3
2,3,1,4
2,3,4,1
2,4,1,3
2,4,3,1
3,1,2,4
3,1,4,2
3,2,1,4
3,2,4,1
3,4,1,2
3,4,2,1
4,1,2,3
4,1,3,2
4,2,1,3
4,2,3,1
4,3,1,2
4,3,2,1
num=24
再问: 结果不对
再答: 你想要什么样的结果?四选四应该是什么样子?五选四应该是什么样子?
再问:
再答: 能不能把你的题目写全列出来,理解起来有点累。我参考题目研究一下解决办法。
再问:
再答: 是这样的结果吗?
1,6,11,16
1,7,12,17
1,8,13,18
1,9,14,19
1,10,15,20
2,6,11,16
2,7,12,17
2,8,13,18
2,9,14,19
2,10,15,20
3,6,11,16
3,7,12,17
3,8,13,18
3,9,14,19
3,10,15,20
4,6,11,16
4,7,12,17
4,8,13,18
4,9,14,19
4,10,15,20
5,6,11,16
5,7,12,17
5,8,13,18
5,9,14,19
5,10,15,20
num=25
再问: 1到5是对的,能从6开始在依次类推吗?
如:6,1,11,16
7,1,12,17
再答: 这样:???
6,1,11,16
6,2,12,17
6,3,13,18
6,4,14,19
6,5,15,20
7,1,11,16
7,2,12,17
7,3,13,18
7,4,14,19
7,5,15,20
8,1,11,16
8,2,12,17
8,3,13,18
8,4,14,19
8,5,15,20
9,1,11,16
9,2,12,17
9,3,13,18
9,4,14,19
9,5,15,20
10,1,11,16
10,2,12,17
10,3,13,18
10,4,14,19
10,5,15,20
num=25