加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

贪心算法实现找钱问题-java

(2011-04-23 13:09:17)
标签:

贪心算法

找钱

it

分类: java
//现有面值不等的零钱,通过贪心算法实现找零操作,比如输入二角五分、一角、五分和一分的零钱,本程序定//义以分为单位,程序代码如下:
package test;

import java.util.Scanner;

public class TanXin {

    
    public static void sort(int a[]){
        for (int i = 0; i < a.length; i++) {
            for (int j = i+1; j < a.length; j++) {
                if(a[i]<a[j]){
                    int t=a[i];
                    a[i]=a[j];
                    a[j]=t;
                }
                
            }
            
        }
    }
    public static void main(String[] args) {
        //数组定义零钱
        int[] str=new int[4];
        System.out.println("请输入四个零钱面值:(回车输入)");
        Scanner sc1=new Scanner(System.in);
        for (int i = 0; i < str.length; i++) {
            str[i]=sc1.nextInt();
            
        }
        sort(str);
        //接收要找钱数value
        System.out.println("请输入要找的钱数:");
        Scanner sc = new Scanner(System.in);
        int value=Integer.parseInt(sc.next()+"");
//        System.out.println(value);
        //进行判断找零
        for (int i = 0; i < str.length; i++) {
            if(value>=str[i]){
                int s=(value/str[i]);
                
//                System.out.println(s+" "+str[i]+" "+value);
                System.out.println("应该找零:"+str[i]+"分,"+(value/str[i])+"个");
                value=value-s*str[i];
            }else{
                System.out.println("没有足够的零钱");
            }
            
        }
        
    }

}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有