656.钞票和硬币

656.钞票和硬币

读取一个带有两个小数位的浮点数,这代表货币价值。

在此之后,将该值分解为多种钞票与硬币的和,每种面值的钞票和硬币使用数量不限,要求使用的钞票和硬币的数量尽可能少。

钞票的面值是100,50,20,10,5,2。

硬币的面值是1,0.50,0.25,0.10,0.05和0.01。

输入格式

输入一个浮点数N。

输出格式

参照输出样例,输出每种面值的钞票和硬币的需求数量。

数据范围

0≤N≤1000000.00

输入样例:

576.73

输出样例:

NOTAS:
5 nota(s) de R$ 100.00
1 nota(s) de R$ 50.00
1 nota(s) de R$ 20.00
0 nota(s) de R$ 10.00
1 nota(s) de R$ 5.00
0 nota(s) de R$ 2.00
MOEDAS:
1 moeda(s) de R$ 1.00
1 moeda(s) de R$ 0.50
0 moeda(s) de R$ 0.25
2 moeda(s) de R$ 0.10
0 moeda(s) de R$ 0.05
3 moeda(s) de R$ 0.01
//取余运算必须是两个整数
//总结分离小数部分与整数部分的方法



#include <cstdio>

int main()
{
	double n;
	int n1, n2;
	
	scanf("%lf", &n);
	n = (int)(n * 100);
	n1 = n / 100;
	n2 = n - n1 * 100;  //注意这里是减去n1 * 100
	
	printf("NOTAS:\n");
	printf("%d nota(s) de R$ 100.00\n", n1 / 100);
	n1 = n1 % 100;
	printf("%d nota(s) de R$ 50.00\n", n1 / 50);
	n1 = n1 % 50;
	printf("%d nota(s) de R$ 20.00\n", n1 / 20);
	n1 = n1 % 20;
	printf("%d nota(s) de R$ 10.00\n", n1 / 10);
	n1 = n1 % 10;
	printf("%d nota(s) de R$ 5.00\n", n1 / 5);
	n1 = n1 % 5;
	printf("%d nota(s) de R$ 2.00\n", n1 / 2);
	
	printf("MOEDAS:\n");
	n1 = n1 % 2;
	printf("%d moeda(s) de R$ 1.00\n", n1);
	printf("%d moeda(s) de R$ 0.50\n", n2 / 50);
	n2 = n2 % 50;
	printf("%d moeda(s) de R$ 0.25\n", n2 / 25);
	n2 = n2 % 25;
	printf("%d moeda(s) de R$ 0.10\n", n2 / 10);
	n2 = n2 % 10;
	printf("%d moeda(s) de R$ 0.05\n", n2 / 5);
	n2 = n2 % 5;
	printf("%d moeda(s) de R$ 0.01\n", n2);
	
		
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42465670/article/details/114750763
今日推荐