• 整币兑换问题


    hdu 2021 发工资咯 - 2014年 - 博客园=========================rwkj  1412
    http://www.cnblogs.com/wc12436109/p/3871975.html

    rwkj  1410 

    算法分析与设计:贪心(找钱问题)

    时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
    总提交:191            测试通过:55

    描述

    买火车票时经常会碰到找钱问题。售票员手中有50、20、10、5、1元的钱币,你知道怎么找钱才能使找回的零钱张数最少吗?

    输入

    多组测试数据,输入需要找钱的钱数

    输出

    对每组测试数据按下面格式输出:
    第一行输出"change:",然后是你要找的钱
    以下几行按面值从大到小输出要找的张数,格式如下:50 yuan: 1,如果1张也没有就不需要输出

    样例输入

    76

    样例输出

    change:76
    50 yuan:1
    20 yuan:1
    5 yuan:1
    1 yuan:1

     

     

    #include <stdio.h>
    int main( )
    {
    int n,x;
    while(scanf("%d",&x)!=EOF)
    {
    printf("change:%d
    ",x);
    for(n=0;x>=50;n++)x=x-50;
    if(n>0)printf("50 yuan:%d
    ",n);
    for(n=0;x>=20;n++)x=x-20;
    if(n>0)printf("20 yuan:%d
    ",n);
    for(n=0;x>=5;n++)x=x-5;
    if(n>0)printf("5 yuan:%d
    ",n);    
    if(x>0)printf("1 yuan:%d
    ",x);        
    }
    return 0;
    } 
    View Code

    #include <stdio.h>
    int main( )
    {
    int n,x;
    while(scanf("%d",&x)!=EOF)
    {
    printf("change:%d ",x);
    for(n=0;x>=50;n++)x=x-50;
    if(n>0)printf("50 yuan:%d ",n);
    for(n=0;x>=20;n++)x=x-20;
    if(n>0)printf("20 yuan:%d ",n);
    for(n=0;x>=5;n++)x=x-5;
    if(n>0)printf("5 yuan:%d ",n);
    if(x>0)printf("1 yuan:%d ",x);
    }
    return 0;
    }

    #include <stdio.h>
    int main( )
    {
    int p1,p2,p5,p10,p20,p50,n,m ;
    n=100 ;
    m=0;
    for(p1=0; p1<=n; p1++)
    for(p2=0; p2<=n/2; p2++)
    for(p5=0; p5<=n/5; p5++)
    for(p10=0; p10<=n/10; p10++)
    for(p20=0; p20<=n/20; p20++)
    for(p50=0; p50<=n/50; p50++)
    if( p1+2*p2+5*p5+10*p10+20*p20+50*p50==n ) m++ ;

    printf("%d ",m) ;


    }

     

    ************************************************************
    ************************************************************************

    #include <stdio.h>
    int main( )
    {
    int p1,p2,p5,p10,p20,p50,n,m ;
    n=100 ;
    m=0;

    for(p2=0; p2<=n/2; p2++)
    for(p5=0; p5<=n/5; p5++)
    for(p10=0; p10<=n/10; p10++)
    for(p20=0; p20<=n/20; p20++)
    for(p50=0; p50<=n/50; p50++)
    {
    p1=n-(2*p2+5*p5+10*p10+20*p20+50*p50) ;
    if(p1>=0) m++ ;
    }

    printf("%d ",m) ;

    }


    **********************************************

    ************************************************************


    #include <stdio.h>
    int main( )
    { int p1,p2,p5,p10,p20,p50,n,m ;
    n=100 ; m=0 ;
    for(p2=0; p2<=n/2; p2++ )
    for(p5=0; p5<=(n-2*p2)/5; p5++ )
    for(p10=0; p10<=(n-2*p2-5*p5)/10 ; p10++ )
    for(p20=0 ;p20<=(n-2*p2-5*p5-10*p10)/20 ; p20++)
    for(p50=0 ; p50<=(n-2*p2-5*p5-10*p10-20*p20)/50; p50++)

    {
    p1=n-(2*p2+5*p5+10*p10+20*p20+50*p50) ;
    if(p1>=0) m++ ;
    }
    printf("%d ",m) ;

    }

     

     

     

     

     

     

     

     

  • 相关阅读:
    天啦噜!原来Chrome自带的开发者工具能这么用你知道么!
    JavaScript易错知识点整理
    2016年开源巨献:来自百度的71款开源项目
    前端js面试中的常见的算法问题
    详解JS跨域问题
    console 输出信息
    js身份证校验
    阻止页面回退
    pc端js常用方法
    js实现QQ、微信、新浪微博分享功能
  • 原文地址:https://www.cnblogs.com/2014acm/p/3901372.html
Copyright © 2020-2023  润新知