求助站外提
查看原帖
求助站外提
756179
so_find_skind楼主2023/9/18 13:15

是我的问题还是题目的问题呜呜呜。

题面: 小华的妈妈在单位负责发放工资。每次她都努力使每个职工领到的人民币总张数最少。小华打算帮助妈妈编写程序,输入某位职工的工资数x,则统计并输出应发给该职工面值100元、50元、20元、10元、5元、2元、1元、5角、2角、1角、5分、2分、1分的人民币各多少张,而且总张数最少。(单位是元,0.01<=x<=1000,小数部分不超过两位)

输入样例: 256.58

输出样例:

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

代码:

#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,不科学啊。

闹了半天我连个红提都不会写

悬关

2023/9/18 13:15
加载中...