题目描述:
期末考试有三种题型,选择题,每题2.3分,填空题,每题3.4分,编程题,每题12分。
张小元一共做出了n道题,最终的得分是m,问张小元做出了选择题,填空题和编程题各几道。如无解,输出Error!
输入:做出的总题数n,最终得分m
输出:依次输出编程题,填空题和选择题的数目,如果有多组结果满足条件,则依次按照编程题的数目,填空题的数目和选择题的数目降序输出。
测试用例:
测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 2 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 3 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 4 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 5 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 6 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
代码实现:
#include<stdio.h>
int main()
{
int n;
double m;
scanf("%d %lf",&n,&m);
int i,j,k;
int flag=0;
for(i=(int)(m/12);i>=0;i--)
{
for(j=(int)((m-12*i)/3.4);j>=0;j--)
{
for(k=(int)((m-i*12-j*3.4)/2.3);k>=0;k--)
{
if(i*12+j*3.4+k*2.3==m&&i+j+k==n)
{
printf("%d %d %d\n",i,j,k);
flag++;
}
}
}
}
if(flag==0)
{
printf("Error!\n");
}
return 0;
}