/*
首先,假如本题的钱只有1、2两个面值,那么对应n元人民币,有n/2+1种兑换方法(两元可以有有0、1、2、3、4、5……n/2张,一共n/2+1种)
增加5元面值的钱币,则需要在上面思路的基础上,算出5元最多可以换n/5张。循环计算当5元有i张时,剩余n-5*i元人民币,带入上方公式,累加即可。
本算法如果在面值种类多时,需要多重循环。n种面值需要n-2重循环。不确定是否有其他算法能更优化
*/
#include<stdio.h>
int main()
{
int n,m,p,i,ans;
scanf("%d",&n);
m=n/5;
ans=0;
for(i=0;i<=m;i++) ans+=(n-5*i)/2+1;
printf("%d",ans);
}
int main()
{
int n,m,p,i,ans;
scanf("%d",&n);
m=n/5;
ans=0;
for(i=0;i<=m;i++) ans+=(n-5*i)/2+1;
printf("%d",ans);
}
全部评论
(1) 回帖