首页 > 试题广场 >

换硬币。将一笔零钱(大于8分,小于1元,精确到分)换算成5分

[问答题]

换硬币。将一笔零钱(大于8分,小于1元,精确到分)换算成5分,2分,1分的硬币,每种硬币至少有一枚。输入金额,问有几种换法?针对每一种换法,输出各种面额硬币的数量和硬币的总数量。试编写相应程序。

推荐
#include "stdio.h"  
int main(void)  
{  
    int count, fen1, fen2, fen5, money;  
    int repeat, ri;  
  
  
    scanf("%d", &repeat);  
    for(ri = 1; ri <= repeat; ri++){  
        scanf("%d", &money);  
        count = 0;  
        for(fen5 = money/5;fen5>=1;fen5--){  
        for(fen2= money /2;fen2>=1;fen2--){  
        for(fen1= money ;fen1>=1;fen1--)  
            if(money == 5*fen5 + 2*fen2 + fen1 ){  
                count++;  
                printf("fen5:%d,fen2:%d,fen1:%d,total:%d\n",fen5, fen2, fen1, fen5+fen2+fen1);}  
            }  
        }  
        printf("count = %d\n", count);  
    }  
} 

发表于 2018-05-06 21:24:53 回复(1)
/*
换硬币:5分,2分,1分
*/
#include<stdio.h>
int main()
{
    int n,i,j;
    printf("请输入钱的总量\n");
    scanf("%d",&n);
    for(i=(n-3)/5;i>=1;i--)
    {
        for(j=(n-i*5-1)/2;j>=1;j--)
        {
            printf("5分:%d, 2分:%d, 1分:%d\n",i,j,n-i*5-j*2);
        }
    }
    return 0;
}

发表于 2021-02-20 16:56:14 回复(0)
#include<stdio.h>
int main(void)
{
    int n,count;
    
    scanf("%d",&n);

    for(int i = 0 ; i <= n ; i++){
        for(int j = 0 ; j <= n ; j++){
            for(int k = 0 ; k <= n ; k++){
                if(i != 0 && j != 0 && k != 0 && 5 * i + 2 * j + k == n)
                {
                     count ++;
                    printf("5分%d张 2分%d张 1分%d张\n",i,j,k);
                }
            }
        }
    }

    printf("有%d种分法\n",count);

    return 0;
}

发表于 2020-02-23 20:16:43 回复(0)