这里小数不好处理,我们可以把小数都乘 $100$,这样就变成整数运算了。
#include <bits/stdc++.h>
using namespace std;
int a[105] = {100,50,20,10,5,2};
double b[105] = {1, 0.5, 0.25, 0.1, 0.05, 0.01};
int main(){
double tmp;
cin >> tmp;
int t = tmp * 100;
cout << "NOTAS:\n";
for (int i = 0; i < 6; i ++ )
{
printf("%d nota(s) de R$ %.2lf\n", t / (a[i]*100), a[i]*1.);
t %= (a[i]*100);
}
cout << "MOEDAS:\n";
for (int i =0;i<6;i++)
{
printf("%d moeda(s) de R$ %.2lf", t/int(b[i] * 100), b[i]);
cout << endl;
t %= int(b[i]*100);
}
}
saber版本,码风奇特