PTA 天梯赛7-4 h0132. 钞票和硬币 (15 分) C语言AC题解

Posted on   zeitspeed  阅读(39)  评论(0编辑  收藏  举报

读取一个带有两个小数位的浮点数,这代表货币价值。

在此之后,将该值分解为多种钞票与硬币的和,每种面值的钞票和硬币使用数量不限,要求使用的钞票和硬币的数量尽可能少。

钞票的面值是100,50,20,10,5,2。

硬币的面值是1,0.50,0.25,0.10,0.05和0.01。

输入格式:
输入一个浮点数N(0≤N≤1000000.00)。

输出格式:
参照输出样例,输出每种面值的钞票和硬币的需求数量。

输入样例:
112.03
输出样例:
NOTAS:
1 nota(s) de R$ 100.00
0 nota(s) de R$ 50.00
0 nota(s) de R$ 20.00
1 nota(s) de R$ 10.00
0 nota(s) de R$ 5.00
1 nota(s) de R$ 2.00
MOEDAS:
0 moeda(s) de R$ 1.00
0 moeda(s) de R$ 0.50
0 moeda(s) de R$ 0.25
0 moeda(s) de R$ 0.10
0 moeda(s) de R$ 0.05
3 moeda(s) de R$ 0.01

#include<stdio.h>
int main(void){
    float m;
    scanf("%f",&m);
    int i=0;
    float a[12]={100.0,50.0,20.0,10.0,5.0,2.0,1.0,0.5,0.25,0.1,0.05,0.01};
    int b[12]={0};
    int j=0;
    while(m>=a[i]){
        if (m < 0.01) {
            b[j]++;
            break;
        }
        m-=a[i];
        b[j]++;
        while(m<a[i]){
            i++;
            j++;
        }
    }
    printf("NOTAS:\n");
    for(int l=0;l<6;l++){
        printf("%d nota(s) de R$ %.2f\n",b[l],a[l]);
    }
        printf("MOEDAS:\n");
    for(int l=6;l<11;l++){
        printf("%d moeda(s) de R$ %.2f\n",b[l],a[l]);
    }
    if(b[11]>0){
        printf("%d moeda(s) de R$ %.2f\n",b[11]+1,a[11]);
    }else{
        printf("%d moeda(s) de R$ %.2f\n",b[11],a[11]);
    }
    return 0;
}
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示