社区讨论

求助站外提

题目总版参与者 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
输出样例:
CPP
100: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 条回复,欢迎继续交流。

正在加载回复...