Description
牛客网 2018校招真题 硬币兑换
Solving Ideas
策略为从小到大,每种面值的硬币用一个,剩下的全部用面值为1的硬币填充
Solution
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @author wylu
*/
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] coin = {0, 1, 2, 5, 10, 20, 50, 100};
int[] sum = new int[8];
for (int i = 1; i < coin.length; i++) {
sum[i] += sum[i - 1] + coin[i];
}
//策略为从小到大,每种面值的硬币用一个,剩下的全部用面值为1的硬币填充
for (int i = sum.length - 1; i > 0; i--) {
if (n >= sum[i]) {
System.out.println(i + " " + (n - sum[i] + i));
break;
}
}
}
}