【OJ】Problem D: 一元钞票

记录踩坑C语言。。。。

Description

把一元钞票换成一分、二分、五分硬币,要求至少有m枚一分,n枚二分和k枚五分,m+2n+5k<=100,有哪些种换法?

Input

m,n,k

Output

五分、二分、一分硬币的个数,以空格隔开,每种方案一行

Sample Input

100,0,0

Sample Output

0 0 100

HINT

搞不懂,到底哪里有问题。。。。。


贴个代码

#include<stdio.h>
int main()
{
	int m,n,k,i,j,x;
	scanf("%d,%d,%d",&m,&n,&k);
	for(i=m;i<=100;i++)
	for(j=n;j<=50;j++)
	for(x=k;x<=20;x++)
	if(i+2*j+5*x==100)//<=和==都试过了,过不了
	printf("%d %d %d\n",x,j,i);
}

经过一个大神提醒,考虑到黑盒测试的问题,可能是循环结构不一致导致的答案出错。

2020年11月2日更新

#include<stdio.h>
int main()
{
	int m,n,k,i,j,x;
	scanf("%d,%d,%d",&m,&n,&k);
	for(x=k;x<=20;x++)
        for(j=n;j<=50;j++)
	        for(i=m;i<=100;i++)
            	if(i+2*j+5*x==100)
                	printf("%d %d %d\n",x,j,i);
}

可尝试更正后代码,两组输出结果顺序不一致。

标签: c oj

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)

sitemap