这个题怎么做,为什么要规定a=n-m这是同学的答案,我看不太懂

img

#include<stdio.h>
int main()
{
    int m,n,a,b,c,d;
    scanf("%d %d",&m,&n);
    a=n-m;
    for(b=0;b<=a;b++)
    {
        for(c=0;c<=a/2;c++)
        {
            for(d=0;d<=a/3;d++)
            {
                if(b+c+d<=m&&b+2*c+3*d==a)
                printf("%d %d %d\n",b,c,d);
            }
        }
    }
    return 0;
}

每个人都能做对至少一道题目,所以总共还剩 20-15=5道题目,第一种情况,做对2道的人数为0,那么做对三道的如果也为0,那只剩做对4道的了,而做对4道还要+3+3=6大于了5,所以0 0 2错误,做对3道的如果为1,那么5-2=3,刚好这3道是做对4道的一人,所以0 1 1 成立,以此类推。如果懂了,点赞即可,采纳选择楼上

每个人做对一道题目,就还剩n-m到题目