版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/skyejy/article/details/88583013
import java.util.Collections;
import java.util.Scanner;
public class greedyalgorithm {
final int n=7;
static int []count={5,0,2,1,1,3,5};
static int []value={1,2,5,10,20,50,100};
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 假设1元、2元、5元、10元、20元、50元、100元的纸币
* 分别有c0, c1, c2, c3, c4, c5, c6张。
* 现在要用这些钱来支付K元,至少要用多少张纸币?
* 用贪心算法的思想,每一步尽可能用面值大的纸币即可。
* 在程序中已经事先将Value按照从小到大的顺序排好
*/
Scanner sc=new Scanner(System.in);
int money=sc.nextInt();
int result=solve(money);
if(result==-1)
System.out.println("金额不足");
else
System.out.println(result);
}
private static int solve(int money) {
// TODO Auto-generated method stub
int num=0;
for(int i=6;i>=0;i--)
{
int c=money/value[i];
if(c<=count[i])
c=money/value[i];
else
c=count[i];
money=money-c*value[i];
num=num+c;
}
if(money>0) return -1;
else return num;
}
}
写完之后,突然意识到那天上课老师说的代码风格!!!
我的代码风格就是乱糟糟,随心所欲写,从来不管别人看不看得懂。这样不行,得改。
在eclipse里可以用Ctrl+i键整理格式(这个方法还是一个很爱干净、很整洁的男同学教我的,大概是看我的代码实在是太乱了……)
import java.util.Collections;
import java.util.Scanner;
public class greedyalgorithm {
final int n=7;
static int []count={5,0,2,1,1,3,5};
static int []value={1,2,5,10,20,50,100};
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 假设1元、2元、5元、10元、20元、50元、100元的纸币
* 分别有c0, c1, c2, c3, c4, c5, c6张。
* 现在要用这些钱来支付K元,至少要用多少张纸币?
* 用贪心算法的思想,每一步尽可能用面值大的纸币即可。
* 在程序中已经事先将Value按照从小到大的顺序排好
*/
Scanner sc=new Scanner(System.in);
int money=sc.nextInt();
int result=solve(money);
if(result==-1)
System.out.println("金额不足");
else
System.out.println(result);
}
private static int solve(int money) {
// TODO Auto-generated method stub
int num=0;
for(int i=6;i>=0;i--)
{
int c=money/value[i];
if(c<=count[i])
c=money/value[i];
else
c=count[i];
money=money-c*value[i];
num=num+c;
}
if(money>0) return -1;
else return num;
}
}
整理过后,似乎也没有好到哪里去,哭了……道阻且艰