/****************************************
*  File Name  : figure.c
*  Creat Data : 2015.1.30
*  Author     : ZY
*****************************************/ /*数的变幻*/
/*小明买书*/
/*小明假期同爸爸一起去书店,他选中了六本书,每本书的单价分别
为:3.1,1.7,2,5.3,0.9和7.2不巧的是,爸爸兜里只带了十几块钱,
为了让小明过一个愉快的假期,爸爸依然同意买书,但提出一个要求,
要小明从六本书中选出若干本,使得单价相加所得的和同10最接近。
你能帮小明解决这个问题吗?*/#include <stdio.h>
#include <math.h>int main(void)
{int d[6],m,i,j;long b[63],flag;float c[6],min,x;printf("Please enter the prices of 6 books:");for(i = 0;i < 6;i++){scanf("%f",&c[i]);//输入6个浮点数}for(i = 0,min = -1,d[0] = 0;d[0] < 2;d[0]++){//建立六个全部的组合并处理,d[]:组合时是否取该值标志,min:与10最小的差值,i:差值具有min组合的数量for(d[1] = 0;d[1] < 2;d[1]++){for(d[2] = 0;d[2] < 2;d[2]++){for(d[3] = 0;d[3] < 2;d[3]++){for(d[4] = 0;d[4] < 2;d[4]++){for(d[5] = 0;d[5] < 2;d[5]++){for(flag = 0,x = 0.,j = 5;j >= 0;j--){//x:对应六个组合的和,flag :将六个数的组合用对应的一个十进制位表示x += c[j]*d[j];flag = flag*10+d[j];}x = ((x - 10) > 0)?(x - 10):(10 - x);//x:组合的和和10的差if(min < 0){min = x;//对第一次计算的差进行处理b[i++] = flag;//b[]记录有相同的min的flag数组,i:b[]的下标}else if(min - x > 1.e-6)//对新的min处理{min = x;b[0] = flag;i = 1;}else if(fabs((double)x - min)<1.e-6)//对相等的min处理{b[i++] = flag;}}}}}}for(m = 0;m < i;m++)//输出组合{printf("10 ( + - ) %.2f = ",min);for(flag = b[m],j = 0;flag > 0;j++,flag/=10){if(flag%10)//将b[]中存的标记flag还原为各个数的组合{if(flag > 1){printf("%.2f+",c[j]);}else{printf("%.2f\n",c[j]);}}}}}return 0;
}

数的变幻(小明买书)相关推荐

  1. 数学回味系列之23 - 小明买书

    问题提出: 小明假期同爸爸一起去书店,他选中了六本书,每本书的单价分别为:3.1,1.7,2,5.3,0.9和7.2.不巧的是,小明的爸爸只带了十几块钱,为了让小明过一个愉快的假期,爸爸扔然同意买书, ...

  2. 【坐在马桶上看算法】排序总结:小哼买书

    之前讲了三种常用的经典排序.排序算法还有很多,例如选择排序.计数排序.基数排序.插入排序.归并排序和堆排序等等.堆排序是基于二叉树的排序,以后再说吧.先分享一个超酷的排序算法的视频. 再来看一个具体的 ...

  3. 小哼买书JAVA编写,04_小哼买书

    现在来看一个具体的例子"小哼买书"(根据全国青少年信息学奥林匹克联赛 NOIP2006 普及组第一题改编),来实践一下 章所学的三种排序算法. Paste_Image.png 小哼 ...

  4. C语言:【入门】小明买水果

    题目描述 小明去超市买了若干斤水果,你能根据水果的单价,小明买的水果数量,编一个程序计算出总金额,并打印出清单. 输入 两行   第一行商品的单价,是一个小数   第二行商品的数量,是一个整数 输出 ...

  5. 蓝桥杯真题 14省1-啤酒和饮料 啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。 注意:答案是一

    问题描述 啤酒每罐2.3元,饮料每罐1.9元.小明买了若干啤酒和饮料,一共花了82.3元. 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒. 注意:答案是一个整数. 不要书写任何多余的内容 ...

  6. 1703 - 小明买水果

    题目描述 小明去超市买了若干斤水果,你能根据水果的单价,小明买的水果数量,编一个程序计算出总金额,并打印出清单. 输入 第一行商品的单价,是一个小数. 第二行商品的数量,是一个整数. 输出 一行,商品 ...

  7. 啊哈添柴——小哼买书

    啊哈添柴--小哼买书 小哼的学校要建立一个图书角,老师派小哼去找一些同学做调查,看看同学们都喜欢读哪些书. 小哼让每个同学写出一个自己最想读的书的ISBN号(你知道吗?每本书都有唯一的ISBN号,不信 ...

  8. 小明买了个饭团,原来背后的支付、结算、清算是这样的!

    第三方支付似乎早已成为市场热词,当广大人民群众都知其然的时候,这里想从银行端的视角来梳理梳理支付.结算.清算三姐妹的关系,在屏蔽相关细节.抛弃学院派的严谨的同时,试图用推测来还原我们在摇一摇.扫一扫背 ...

  9. 第八周拓展实践1小明借书

    问题及代码: /*Copyright(c)2016,烟台大学计算机学院 all rights reserved. 作者:曹欣宇 完成日期:2016年10月22日 版本号:v1.0题目描述小明要把5本书 ...

  10. 小明买12瓶汽水,喝完后3个空瓶可以换1瓶汽水,问小明一共可以喝多少瓶汽水?

    const totalCount = 12 // 一共多少瓶汽水 const change = 3 // 3个空瓶换一瓶汽水 let totalCo = 0 // 喝到总瓶数 function num ...

最新文章

  1. JS中三目运算符和if else的区别
  2. 想非常牛掰的在WORD中调中多级符号吗
  3. eclipse项目迁移到Android Studio
  4. wndows系统命令总结
  5. JVM——详解类加载过程
  6. Tomcat引起的中文乱码问题
  7. sencha extjs4 command tools sdk
  8. wait、notify、notifyAll和Condition
  9. 解锁秋天\秋季借势的海波设计密码!
  10. 用Tensorflow搭建预测磁盘性能的机器学习模型
  11. Debian安装autoconf
  12. 【避坑】初次接项目的血与泪,扎坑了老铁(二)
  13. Atitit 减少财政支出----普通人如何蹭政府补贴措施 attilax大总结.docx
  14. oracle设置自增字段,oracle序列
  15. 互联网大文件的传输方式
  16. mac根目录无法新建文件夹
  17. html 5 flash 播放器开发
  18. 家装中,你最后悔的事是什么?上海极家装修公司简介!
  19. ROS中工作空间和功能包的创建以及发布者Publisher的实现
  20. 通知:首届CISM大赛华东赛区决赛将于30日在马鞍山举行

热门文章

  1. bootstrap3.x popover报错Cannot read property 'off' of null
  2. ftw, nftw - file tree walk
  3. Ubuntu内网穿透
  4. 大觅网Springcloud项目实战开发(持续更新中)
  5. 英文连写字体怎么练_“衡中体”英语书写视频受到英国媒体关注,现在开始练还不晚!...
  6. 在QQ浏览器打开html,QQ浏览器显示网页打开错误的解决方法
  7. oracle数据块坏,ORACLE中修复数据块损坏
  8. 计算机图形学——简单图形绘制
  9. 四川水泥杂志四川水泥杂志社四川水泥编辑部2022年第11期目录
  10. 庄辰超:“去哪儿”的大生意