公司发了某商店的购物券1000元,限定只能购买店中的m种商品。每种商品的价格分别为m1,m2,…,要求程序列出所有的正好能消费完该购物券的不同购物方法。

程序输入:
第一行是一个整数m,代表可购买的商品的种类数。
接下来是m个整数,每个1行,分别代表这m种商品的单价(0<m<1000)。
程序输出:
    第一行是一个整数,表示共有多少种方案
    第二行开始,每种方案占1行,表示对每种商品购买的数量,中间用空格分隔。
例如:

输入:
2
200
300
则应输出:
2
2  2
5  0

输入:
2
500
800
则应输出:
1
2  0

输入:
1
999
则应输出:
0

多个方案间的顺序不重要。

 1 #include<stdio.h>
 2 #include<malloc.h>
 3 int main()
 4 {
 5     int m,sum;
 6     scanf("%d",&m);//m种商品
 7     int *p=(int*)malloc(sizeof(int)*m);//存储价格
 8     int *i=(int*)malloc(sizeof(int)*m);//存放方案
 9     int *max=(int*)malloc(sizeof(int)*m);
10     int count=0;//记录方案总数
11     for(int j=0;j<m;j++)
12     {
13         i[j]=0;//初始化方案数
14         scanf("%d",p+j);
15         max[j]=1000/p[j];
16     }
17     while(i[0]<=max[0])
18     {
19         for(int j=m-1;j>=0;j--)
20         {
21             i[j]++;
22             if(i[j]>max[j]&&j) i[j]=0;
23             else break;
24         }
25         sum=0;
26         for(int j=0;j<m;j++) sum+=p[j]*i[j];//计算
27         if(sum==1000)
28         {
29             count++;
30             for(int j=0;j<m;j++) printf("%-4d",i[j]);
31             putchar('\n');
32         }
33     }
34     printf("总共有 %d 方案\n",count);
35     system("pause");
36     return 0;
37 }

转载于:https://www.cnblogs.com/dzqdzq/archive/2013/05/03/3055799.html

1000元购物卷买票相关推荐

  1. 1000元手机性价比排行榜2022 1000元手机买什么好

    红米Note11 Pro 这款手机采用了全新的直角中框设计,正面采用了居中挖孔屏幕,背面为AG玻璃材质,它的外观以及质感甚至可以媲美旗舰机,屏幕来自三星AMOLED面板,分辨率为2400x1080,支 ...

  2. WebiTrader睿德二元期权用1000元买了个iphone5

    WebiTrader睿德二元期权的交易员吴先生和大家分享一下,他是怎么用1000元在一个星期内买到了一部iphone 5. 我只用了1000元就买了一个iPhone5,想知道我是如何做到的么?我是一名 ...

  3. 使用多线程模拟电影院买票。

    模拟唐僧师徒4人买电影票.电影票10元一张,唐僧拿着一张50元的.孙悟空那和 猪八戒都拿着一张20的. 沙僧拿着一张10元的.此时售票员手中只有一个10元的. 模拟他们4个人买票. package c ...

  4. Java线程同步-模拟买票

    文章首发于 2020-11-29 知乎文章:Java线程同步-模拟买票 作者:落雨湿红尘(也是我o) 01 导语 本文使用JAVA代码模拟买票场景下的业务交互,通过示例讲解线程的初始化.线程同步等ja ...

  5. 合工大 程序设计艺术 实验六 买票问题

    题目 电影院卖电影票,但是没有零钱找,票价一张 5 元,买票的人为 n 个持有 5 元,m 个持 有 10 元,求解出可能的买票序列的个数,使得电影院能够将票卖完. 解题思路 买票问题是卡特兰数的经典 ...

  6. 【编程之美】买票找零

    一,问题:n个拿着1元,n个人拿着2元去买票.票价一元,且售票元只能用n个人购票的一元给2元的找零.问有几种排列方法 分析:卡特兰数方法 递推公式:F(2*n) =F(0)*F(2(n-1)) +F( ...

  7. 模拟3个人排除买票,每人买1张票。售货员只有1张五元的钱,电影票5元一张

    解决线程同步问题 模拟3个人排除买票,每人买1张票.售货员只有1张五元的钱,电影票5元一张,王大拿拿一张二十元的人民币排在谢大脚前面买票,谢大脚拿1张十元的人民币排在在赵四的前面买票,赵四拿1张五元的 ...

  8. 金融债券定价公式:假设你买了一只50年期债券,票面利率是6%,面值是1000元,每半年付息一次。如果该债券的必要报酬率是3%,那么这个债券的价格应当是多少?

    接了一单金融的,求债券定价公式:假设你买了一只50年期债券,票面利率是6%,面值是1000元,每半年付息一次.如果该债券的必要报酬率是3%,那么这个债券的价格应当是多少? 还有不算必要报酬率的. 假设 ...

  9. java 买票_java 多线程之synchronized wait/notify解决买票问题

    一.Java线程具有五中基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程对象的st ...

最新文章

  1. 「每天一道面试题」下面的代码有问题吗?为什么?
  2. 中国自研数据库打破西方垄断:阿里成绩刷新世界尘封9年纪录,性能2倍于第二名...
  3. 如何查看 phtml文件 并有代码颜色提示
  4. linux命令之tee,技术|为初学者介绍的 Linux tee 命令(6 个例子)
  5. 含最新数据! 使用Python检测新冠肺炎疫情拐点
  6. mysql 查询每人每天_PHP+MySQL实现对一段时间内每天数据统计优化操作实例
  7. Uploadify3.2中文提示
  8. mac你没有权限打开应用程序_苹果mac卡顿怎么解决呢?轻松几招让你Mac流畅如新
  9. non-member function ‘size_t capacity()’ cannot have cv-qualifier
  10. CodeForces - 1248E Queue in the Train(大模拟)
  11. VForum 2008系列之六:分论坛视频-虚拟世界中的应用
  12. micropython编译原理_C语言嵌入式Linux高级编程第9期:CPU和操作系统入门视频课程...
  13. oracle10g检测未通过,win64bit安装oracle 10g版本检查未通过解决 提示要求的结果: 5.0,5.1,5.2,6.0 之一 实际结果: 6.1...
  14. c语言 参数经过运算后还原为输入值,1:编程实现由键盘输入两个整数,将其赋给变量x和y并输出,交换x和y的值后再输出 用函数输出!...
  15. 容器 - HashTable
  16. 原生JS成语接龙小游戏
  17. 实践应用|Python自动化连接FTP批量下载指定文件
  18. linux强制安装rpm依赖包,Yum下载rpm包、不分析依赖关系强制安装
  19. centos7 ipv4配置
  20. PS标尺和标记线用法的简单记录

热门文章

  1. 怎么把html封装成桌面应用,如何将一个现有的Vue网页项目封装成electron桌面应用...
  2. 利用Python进行数据分析之金融数据的统计分析
  3. 进入qq空间显示服务器错误,解决QQ空间打开无响应或报错的方法
  4. PAC 代理自动发现简介
  5. 公司开发者账号申请分享
  6. 小米注册极石汽车商标,是否为小米汽车的最终名称?
  7. 法规标准-E-NCAP评测标准解析(2023版)
  8. matlab实例静电场,浅析Matlab模拟静电场三维图与恒定电流场模拟静电场
  9. 诺贝尔奖大数据告诉你:最聪明的星座是谁
  10. 普通人要赚钱,真的需要换一换方法了