社区讨论
求助站外提
题目总版参与者 5已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @lo1crxwv
- 此快照首次捕获于
- 2023/10/22 18:55 2 年前
- 此快照最后确认于
- 2023/11/02 19:19 2 年前
是我的问题还是题目的问题呜呜呜。
题面:
小华的妈妈在单位负责发放工资。每次她都努力使每个职工领到的人民币总张数最少。小华打算帮助妈妈编写程序,输入某位职工的工资数x,则统计并输出应发给该职工面值100元、50元、20元、10元、5元、2元、1元、5角、2角、1角、5分、2分、1分的人民币各多少张,而且总张数最少。(单位是元,0.01<=x<=1000,小数部分不超过两位)
输入样例:
256.58
输出样例:
CPP100:2
50:1
20:0
10:0
5:1
2:0
1:1
0.5:1
0.2:0
0.1:0
0.05:1
0.02:1
0.01:1
代码:
CPP#include<bits/stdc++.h>
using namespace std;
double n;
int r;
int a[30]={0,10000,5000,2000,1000,500,200,100,50,20,10,5,2,1};
string t[30]={"0","100","50","20","10","5","2","1","0.5","0.2","0.1","0.05","0.02","0.01"};
int b[30];
int main(){
cin>>n;
r=n*100;
for(int i=1;i<=13;i++)
while(r>=a[i]){
r-=a[i];
b[i]++;
}
for(int i=1;i<=13;i++)
cout<<t[i]<<':'<<b[i]<<"\n";
return 0;
}
怎么调都80,不科学啊。
悬关
回复
共 4 条回复,欢迎继续交流。
正在加载回复...