人民币兑换
【问题描述】
输入一个人民币的整数值(100以内以元为单位),编程找到用10元、5元、2元、1元表示的总数量的最小组合方式。
【输入形式】
从控制台输入一个整数值,表示以元为单位的人民币币值。
【输出形式】
向控制台输出四个整数(以空格分隔),分别表示兑换成的10元、5元、2元、1元人民币的数量,若没有某个币值,则对应输出0。
【鲜例1输入】
98
【样例1输出】
9 1 1 1
【样例1说明】
输入为98,表示98元人民币,把其兑换成10元、5元、2元、1元表示的总数量的最小组合方式为:9个10元,1个5元,1个2元,1个1元,故输出:9 1 1 1
【样例2输入】
11
【样例2输出】
1 0 0 1
【样例2说明】
输入为11,表示11元人民币,把其兑换成10元、5元、2元、1元表示的总数量的最小组合方式为:1个10元,1个1元,没有5元和2元,故输出:1 0 0 1
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int a, b, c;
//a = n / 100;
//b = n%100/10;
//c = n % 10;
a = n / 10;
n = n % 10;
//b = n%10/5;
b = n / 5;
n = n % 5;
//c = n%5/2;
c = n / 2;
n = n % 2;
printf("%d %d %d %d", a,b,c,n);
return 0;
}
运行结果:
换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
代码如下:
#include <stdio.h>
int main (void)
{
int x, count = 0;
scanf("%d", &x);
for(int k = x / 5; k > 0;k--)
for(int i = x / 2; i > 0;i--)
for(int j = x; j > 0;j--)
if(5 * k + 2 * i + j == x)
{
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n", k, i, j, k + i + j);
count++;
}
printf("count = %d", count);
return 0;
}