没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
3页
问题描述:设有 n 种不同的钱币各若干张,可用这 n 种钱币产生许多不同的面值。试 设计一个算法,计算给定的某个面值,能有多少种不同的产生方法。例如有 1 分3 张,2 分 3 张,5 分 1 张,则能组成 7 分面值的方法有:3 个 1 分+2 个 2 分,1 个 1 分+3 个 2 分,2 个 1 分+1 个5 分,1 个2分+1 个5 分共四种。 编程任务:对于给定的 n 种不同钱币,编程计算某个给定面值能有多少种不同的产生 方法。 数据输入:由文件input.txt提供输入数据。文件的第1行有1个正整数n(1<=n<=10),表 示有n中不同的钱币。第2行有n个数,分别表示每种钱币的面值。第3行有n个数,分别表示 每种钱币的张数k(0<=k<=10)。第4行有1个数,表示给定的面值m(1<=m<=20001)。 结果输出:将计算出的给定面值的不同产生方法种数输出到文件 output.txt。
资源推荐
资源详情
资源评论
#include <math.h>
#include <stdio.h>
int cou=0;
int count(int money,int n,int a[],int b[]){
/*int i,j,k,l=money;
else{
for(i=n-1;i>=0;i--){
j=l/a[n-1];
if(j>b[n-1])
j=b[n-1];
for(k=0;k<=j;k++){
l=l-a[n-1]*k;
if(l==0) {cou++;printf("一个组合B\n");}
else if(l<0) return 0;
else{
printf("一次循环,%d,%d,%d,%d\n",n,j,k,l);
count(l,n-1,a,b);
}
}
}
}/*/
int i,j,k;
if(money/a[n-1]<b[n-1])
k=money/a[n-1];
else k=b[n-1];
j=money;
#include <stdio.h>
int cou=0;
int count(int money,int n,int a[],int b[]){
/*int i,j,k,l=money;
else{
for(i=n-1;i>=0;i--){
j=l/a[n-1];
if(j>b[n-1])
j=b[n-1];
for(k=0;k<=j;k++){
l=l-a[n-1]*k;
if(l==0) {cou++;printf("一个组合B\n");}
else if(l<0) return 0;
else{
printf("一次循环,%d,%d,%d,%d\n",n,j,k,l);
count(l,n-1,a,b);
}
}
}
}/*/
int i,j,k;
if(money/a[n-1]<b[n-1])
k=money/a[n-1];
else k=b[n-1];
j=money;
lzzjjx
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页