首页 > 其他 > 详细

8-P钱币兑换问题

时间:2019-02-07 23:42:51      阅读:316      评论:0      收藏:0      [点我收藏+]
在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。

Input

每行只有一个正整数N,N小于32768。

Output

对应每个输入,输出兑换方法数。

Sample Input

2934
12553

Sample Output

718831
13137761

// 第一层循环:控制3分硬币的个数;第二层循环:控制2分硬币的个数;若此时总值未超过N,计数器+1
技术分享图片
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n, c, i, j;
 5     while(~scanf("%d", &n))
 6     {
 7         c=0;
 8         for(i=0;i<=n/3;i++)
 9             for(j=0;j<=n/2;j++)
10             {
11                 if(n-3*i-2*j>=0)
12                     c++;
13                 else break;
14             }
15         printf("%d\n", c);
16     }
17     return 0;
18 }
Time Limit Exceeded
// 详见代码
技术分享图片
 1 #include<stdio.h>
 2 // 3分钱,2取种,1补值. 
 3 int main()
 4 {
 5     int n, c, i;
 6     while(~scanf("%d", &n)) // n=x1+2*x2+3*x3.
 7     {
 8         c=n/3+1;            // 全用1分兑换 +1. 每3=1+2 +1,不够1分凑. 
 9         for(i=0;i<=n/3;i++)
10             c+=(n-3*i)/2;    // 先用3分兑换部分,剩下的每2=1+1 +1,不够1分凑. 
11         printf("%d\n", c);
12     }
13     return 0;
14 }
AC

 

8-P钱币兑换问题

原文:https://www.cnblogs.com/goldenretriever/p/10355719.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!