数的变幻(小明买书)
/****************************************
* 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;
}
数的变幻(小明买书)相关推荐
- 数学回味系列之23 - 小明买书
问题提出: 小明假期同爸爸一起去书店,他选中了六本书,每本书的单价分别为:3.1,1.7,2,5.3,0.9和7.2.不巧的是,小明的爸爸只带了十几块钱,为了让小明过一个愉快的假期,爸爸扔然同意买书, ...
- 【坐在马桶上看算法】排序总结:小哼买书
之前讲了三种常用的经典排序.排序算法还有很多,例如选择排序.计数排序.基数排序.插入排序.归并排序和堆排序等等.堆排序是基于二叉树的排序,以后再说吧.先分享一个超酷的排序算法的视频. 再来看一个具体的 ...
- 小哼买书JAVA编写,04_小哼买书
现在来看一个具体的例子"小哼买书"(根据全国青少年信息学奥林匹克联赛 NOIP2006 普及组第一题改编),来实践一下 章所学的三种排序算法. Paste_Image.png 小哼 ...
- C语言:【入门】小明买水果
题目描述 小明去超市买了若干斤水果,你能根据水果的单价,小明买的水果数量,编一个程序计算出总金额,并打印出清单. 输入 两行 第一行商品的单价,是一个小数 第二行商品的数量,是一个整数 输出 ...
- 蓝桥杯真题 14省1-啤酒和饮料 啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。 注意:答案是一
问题描述 啤酒每罐2.3元,饮料每罐1.9元.小明买了若干啤酒和饮料,一共花了82.3元. 我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒. 注意:答案是一个整数. 不要书写任何多余的内容 ...
- 1703 - 小明买水果
题目描述 小明去超市买了若干斤水果,你能根据水果的单价,小明买的水果数量,编一个程序计算出总金额,并打印出清单. 输入 第一行商品的单价,是一个小数. 第二行商品的数量,是一个整数. 输出 一行,商品 ...
- 啊哈添柴——小哼买书
啊哈添柴--小哼买书 小哼的学校要建立一个图书角,老师派小哼去找一些同学做调查,看看同学们都喜欢读哪些书. 小哼让每个同学写出一个自己最想读的书的ISBN号(你知道吗?每本书都有唯一的ISBN号,不信 ...
- 小明买了个饭团,原来背后的支付、结算、清算是这样的!
第三方支付似乎早已成为市场热词,当广大人民群众都知其然的时候,这里想从银行端的视角来梳理梳理支付.结算.清算三姐妹的关系,在屏蔽相关细节.抛弃学院派的严谨的同时,试图用推测来还原我们在摇一摇.扫一扫背 ...
- 第八周拓展实践1小明借书
问题及代码: /*Copyright(c)2016,烟台大学计算机学院 all rights reserved. 作者:曹欣宇 完成日期:2016年10月22日 版本号:v1.0题目描述小明要把5本书 ...
- 小明买12瓶汽水,喝完后3个空瓶可以换1瓶汽水,问小明一共可以喝多少瓶汽水?
const totalCount = 12 // 一共多少瓶汽水 const change = 3 // 3个空瓶换一瓶汽水 let totalCo = 0 // 喝到总瓶数 function num ...
最新文章
- JS中三目运算符和if else的区别
- 想非常牛掰的在WORD中调中多级符号吗
- eclipse项目迁移到Android Studio
- wndows系统命令总结
- JVM——详解类加载过程
- Tomcat引起的中文乱码问题
- sencha extjs4 command tools sdk
- wait、notify、notifyAll和Condition
- 解锁秋天\秋季借势的海波设计密码!
- 用Tensorflow搭建预测磁盘性能的机器学习模型
- Debian安装autoconf
- 【避坑】初次接项目的血与泪,扎坑了老铁(二)
- Atitit 减少财政支出----普通人如何蹭政府补贴措施 attilax大总结.docx
- oracle设置自增字段,oracle序列
- 互联网大文件的传输方式
- mac根目录无法新建文件夹
- html 5 flash 播放器开发
- 家装中,你最后悔的事是什么?上海极家装修公司简介!
- ROS中工作空间和功能包的创建以及发布者Publisher的实现
- 通知:首届CISM大赛华东赛区决赛将于30日在马鞍山举行
热门文章
- bootstrap3.x popover报错Cannot read property 'off' of null
- ftw, nftw - file tree walk
- Ubuntu内网穿透
- 大觅网Springcloud项目实战开发(持续更新中)
- 英文连写字体怎么练_“衡中体”英语书写视频受到英国媒体关注,现在开始练还不晚!...
- 在QQ浏览器打开html,QQ浏览器显示网页打开错误的解决方法
- oracle数据块坏,ORACLE中修复数据块损坏
- 计算机图形学——简单图形绘制
- 四川水泥杂志四川水泥杂志社四川水泥编辑部2022年第11期目录
- 庄辰超:“去哪儿”的大生意