A国一共发行了几种不同面值的硬币,分别是面值1元,2元,5元,10元,20元,50元,100元。假设每种面值的硬币数量是无限,现在你想用这些硬币凑出总面值为n
的硬币,同时你想让选出的硬币中,不同的面值种类尽可能多;在面值种类尽可能多的情况下,你想让选择的硬币总数目尽可能多,请问应该怎么选择硬币?
- 输入描述:
第一行包含一个数字?,表示要凑出的面值。1≤?≤109 - 输出描述:
输出两个整数,分别表示最多能有多少种类型的硬币以及在类型最多的情况下最多能用上多少枚硬币。 - 输入样例 1:
3
- 输出样例 1:
2 2
- 输入样例 2:
10
- 输出样例 2:
3 5
#include<iostream>
#include<iomanip>
#include<string.h>
#include<stdlib.h>
using namespace std;
int main()
{
int num[8] = { 0, 1, 2, 5, 10, 20, 50, 100 };
int money = 10;
int count;
int sum[10] = {0};
for (int i = 1; i <= 7; i++)
{
sum[i] = sum[i - 1] + num[i];
//cout << sum[i]<<" ";
}
for (int i = 7; i >=1; i--)
{
if (money>=sum[i])
{
cout << i << money - sum[i] + i << endl; break;
}
}
system("pause");
return 0;
}