高级程序设计语言2的作业有点难
2007-03-18 00:32
253 查看
今天写了第一次作业的最后3道答题,全是算法,纯算法!无聊~~~
其中最后一题是这样的:
兑换硬币
【问题描述】
写一个程序,从标准输入上读入一个正整数N(1 <= N <=1000),计算出N元人民币兑换成1分、2分和5分的硬币,有多少种可能的组合。将结果以整数的方式输出到标准输出上,占一行。
时间限制:1秒。
【输入样例】
1
【输出样例】
541
在网上找到了相关资料...
以6分硬币为例分析如下
[情况1] 如果不用5分的硬币,则共有6/2+1种组合方法,这是因为:如果都用1分的硬币,只有1种方法,这就是公式n/2+1后面要加1的缘故;而如果用上2分的硬币,可能用1个二分硬币,或者2个二分硬币,或者3个硬币,即最多可以有6/2个二分硬币。因此如果不用五分硬币,就共有6/2+1种组合方法。
[推广1] 这可以推广到n分硬币的情况,在不用5分硬币的情况,就可以有n/2+1种组合方法。
[情况2] 如果用五分硬币,如果用1个五分硬币,则将(6-5)分硬币按照情况1,即只有一分硬币和二分硬币,进行组合,组合的方法有(6-5)/2+1种。因为在此例中,最多只能用1个五分硬币,所以总共的组合方法就是((6-5)/2+1)+ 6/2+1=5种。
[推广2] 情况2推广到n分硬币的情况,如果只用1个五分硬币,将n-5分硬币按照情况1进行组合,方法有(n-5)/2+1种;如果用2个五分硬币,方法有(n-5*2)/2+1种;如果用3个五分硬币,方法有(n-5*3)/2+1种…...因此,用上了五分硬币的情况总共有种。
[综上] 有公式( ( n - 5 * i ) / 2 ) + 1求和(i从0到n/5)
代码如下:
#include<stdio.h>
int main()
...{
int n = 0, i = 0, times = 0;
scanf( "%d", &n );
for ( i = 0; i <= n / 5; i++ )
times += ( ( n - 5 * i ) / 2 ) + 1;
printf( "%d ", times );
}
其中最后一题是这样的:
兑换硬币
【问题描述】
写一个程序,从标准输入上读入一个正整数N(1 <= N <=1000),计算出N元人民币兑换成1分、2分和5分的硬币,有多少种可能的组合。将结果以整数的方式输出到标准输出上,占一行。
时间限制:1秒。
【输入样例】
1
【输出样例】
541
在网上找到了相关资料...
以6分硬币为例分析如下
[情况1] 如果不用5分的硬币,则共有6/2+1种组合方法,这是因为:如果都用1分的硬币,只有1种方法,这就是公式n/2+1后面要加1的缘故;而如果用上2分的硬币,可能用1个二分硬币,或者2个二分硬币,或者3个硬币,即最多可以有6/2个二分硬币。因此如果不用五分硬币,就共有6/2+1种组合方法。
[推广1] 这可以推广到n分硬币的情况,在不用5分硬币的情况,就可以有n/2+1种组合方法。
[情况2] 如果用五分硬币,如果用1个五分硬币,则将(6-5)分硬币按照情况1,即只有一分硬币和二分硬币,进行组合,组合的方法有(6-5)/2+1种。因为在此例中,最多只能用1个五分硬币,所以总共的组合方法就是((6-5)/2+1)+ 6/2+1=5种。
[推广2] 情况2推广到n分硬币的情况,如果只用1个五分硬币,将n-5分硬币按照情况1进行组合,方法有(n-5)/2+1种;如果用2个五分硬币,方法有(n-5*2)/2+1种;如果用3个五分硬币,方法有(n-5*3)/2+1种…...因此,用上了五分硬币的情况总共有种。
[综上] 有公式( ( n - 5 * i ) / 2 ) + 1求和(i从0到n/5)
代码如下:
#include<stdio.h>
int main()
...{
int n = 0, i = 0, times = 0;
scanf( "%d", &n );
for ( i = 0; i <= n / 5; i++ )
times += ( ( n - 5 * i ) / 2 ) + 1;
printf( "%d ", times );
}
相关文章推荐
- 高级语言程序设计第三次作业
- 高级语言程序设计作业
- Java语言程序设计-Markdown格式作业模板
- PART IV 程序设计层 Chapter 8 高级程序设计语言
- 高级语言程序设计实验6-9二维数组
- 高级程序设计语言学习2
- AHUOJ 高级语言程序设计实验(六)素数判断
- 【打基础】高级语言程序设计·厦大出版社 课后习题个人记录1
- 自考“高级语言程序设计”上机考点串讲(2)
- 高级语言程序设计第一次上机报告
- 【javascript高级语言程序设计】四
- 求高级语言程序设计答案
- 通常高级程序设计语言包含的语法内容
- 高级语言程序设计第二次上机报告
- 【javascript高级语言程序设计】二
- 高级语言程序设计 13-14-1
- 学习:程序设计语言——编译原理(二、高级语言及其语法描述)
- 《程序设计入门—Java语言.翁恺》第七周编程作业(1)-分解质因数
- C语言高级程序设计——函数指针
- 【打基础】高级语言程序设计·厦大出版社 课后习题个人记录2