计算导论与程序设计某次上机考试共出了4道题,其中每名同学都至少做对了一道题。根据已知条件求做对了2、3、4题的可能的人数。。
输入格式:
只有一行,为两个用空格分隔的正整数m和n,分别代表参加考试的总人数和总的解题数。
输出格式:
有若干行,每一行为一组解,格式均为用空格分隔的三个整数,依次代表解2题的人数,解3题的人数和解4题的人数。多组解的输出顺序按解2题人数由小到大排序,如果解2题的人数相同则按解3题的人数由小到大排序。所有测试数据保证可以用int存储。
输入样例:
15 20
输出样例:
0 1 1
1 2 0
2 0 1
3 1 0
5 0 0
代码实现:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int two,three,four,m,n;
scanf("%d %d",&m,&n);
for(two=0;two<=m;two++)
for(three=0;three<=m;three++)
for(four=0;four<=m;four++)
if((n==m+two+2*three+3*four)&&(two+three+four<=m))
printf("%d %d %d\n",two,three,four);
return 0;
}
心得体会:其实就是鸡兔同笼的变式嘛,只是题目的表述让人有些费解。