MT31. 硬币兑换
描述
输入描述
第一行包含一个数字𝑛,表示要凑出的面值。输出描述
输出两个整数,分别表示最多能有多少种类型的硬币以及在类型最多的情况下最多能用上多少枚硬币。示例1
输入:
3
输出:
2 2
示例2
输入:
10
输出:
3 5
C 解法, 执行用时: 2ms, 内存消耗: 312KB, 提交时间: 2021-09-17
#include<stdio.h> int main() { long long n=0; int m; long long num = 0; while(scanf("%lld",&n) != EOF) { if(n==1) { m=1; num = 1; } if(n==2) { m=1; num = 2; } else if(n>=3 && n<8) { m=2; num = 2; n -= 3; num += n; } else if(n>=8 && n<18) { m=3; num = 3; n -= 8; num += n; } else if(n>=18 && n<38) { m=4; num = 4; n -= 18; num += n; } else if(n>=38 && n<88) { m=5; num = 5; n -= 38; num += n; } else if(n>=88 && n<188) { m=6; num = 6; n -= 88; num += n; } else { m=7; num = 7; n -= 188; num += n; } printf("%d %d",m,num); num=0; } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 340KB, 提交时间: 2021-09-11
#include<stdio.h> int main(){ int n,num,coin_num; scanf("%d",&n); int coin[7]={1,2,5,10,20,50,100}; if (n<=2){ num=1; coin_num=n; } else if (n>=3 && n<8){ num=2; coin_num=n-2+1; } else if(n>=8 && n<18){ num=3; coin_num=n-5-2+2; } else if(n>=18 && n<38){ num=4; coin_num=n-10-5-2+3; } else if(n>=38 && n<88){ num=5; coin_num=n-20-10-5-2+4; } else if (n>=88 & n<188){ num=6; coin_num=n-50-20-10-5-2+5; } else{ num=7; coin_num=n-100-50-20-10-5-2+6; } printf("%d %d",num,coin_num); return 0; }