题目描述
读取一个带有两个小数位的浮点数,这代表货币价值。
在此之后,将该值分解为多种钞票与硬币的和,每种面值的钞票和硬币使用数量不限,要求使用的钞票和硬币的数量尽可能少。
钞票的面值是 100,50,20,10,5,2。
硬币的面值是 1,0.50,0.25,0.10,0.05 和 0.01。
样例
输入样例:
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
算法1
时间复杂度
参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
double n;
cin>>n;
int x=n*100;
cout<<"NOTAS:"<<endl;
cout<<x/10000<<" nota(s) de R$ 100.00"<<endl;x%=10000;
cout<<x/5000<<" nota(s) de R$ 50.00"<<endl;x%=5000;
cout<<x/2000<<" nota(s) de R$ 20.00"<<endl;x%=2000;
cout<<x/1000<<" nota(s) de R$ 10.00"<<endl;x%=1000;
cout<<x/500<<" nota(s) de R$ 5.00"<<endl;x%=500;
cout<<x/200<<" nota(s) de R$ 2.00"<<endl;x%=200;
cout<<"MOEDAS:"<<endl;
cout<<x/100<<" moeda(s) de R$ 1.00"<<endl;x%=100;
cout<<x/50<<" moeda(s) de R$ 0.50"<<endl;x%=50;
cout<<x/25<<" moeda(s) de R$ 0.25"<<endl;x%=25;
cout<<x/10<<" moeda(s) de R$ 0.10"<<endl;x%=10;
cout<<x/5<<" moeda(s) de R$ 0.05"<<endl;x%=5;
cout<<x/1<<" moeda(s) de R$ 0.01"<<endl;x%=1;
}