这,,怎,,么,,搞,,

老同学聚餐共有101人,饭后到别时两两相互握手,以示敬意,要求每两个人之间都要互相握一次,而且只能握一次,(既不能能握重,也不能握漏)问他们之间一共要握多少次手?


#include <stdio.h>
#include <math.h>
#include <stdlib.h>


#define N 101

int main(void)
{
        int num = 0;

        for(int i=1;i<=N;i++){
                for(int j=i+1;j<=N;j++){
                        printf("%d\t%d\n", i, j);
                        num++;
                }
        }

        printf("there are %d times of handshaking\n", num);

        return 0;
}

这不是典型的组合问题吗,C101,2=101x100/2

换一种思路,第一个要和100个人握手,第二个握99个人,第三个握98个人,以此类推,第101个握0个人

第一个和其他100个捂手
第一个和其他99个捂手
……

循环到最后