八枚银币
来源:互联网 发布:手机图片排版软件 编辑:程序博客网 时间:2024/06/09 07:24
有八枚银币a b c d e f g h ,已知其中一枚是假币,其重量不同于真币,但不知是较重还是较轻,如何便宜用天平以最少的比较次数决定出那个是假币。并得知假币比真币较轻
#include<stdio.h>#include<stdlib.h>#include<time.h>void compare(int[],int ,int ,int);void eightcoins(int[]);int main(void){int coins[8]={0};int i;srand(time(NULL));for(i=0;i<8;i++)coins[i]=10;printf("输入假币重量");scanf("%d",&i);coins[rand()%8]=i;eightcoins(coins);printf("列出所有钱币重量");for(i=0;i<8;i++){printf("%d",coins[i]); printf("\n");} printf("\n");return 0;}void compare(int coins[],int i,int j,int k){if(coins[i]>coins[k])printf("\n假币%d较重",i+1);elseprintf("\n假币%d较轻",j+1);}void eightcoins(int coins[]){if(coins[0]+coins[1]+coins[2]==coins[3]+coins[4]+coins[5]){if(coins[6]>coins[5]) compare(coins,5,7,0);else compare(coins,6,7,0);}else if(coins[0]+coins[1]+coins[2]>coins[3]+coins[4]+coins[5]){if(coins[0]+coins[3]==coins[1]+coins[4])compare(coins,2,5,0);else if(coins[0]+coins[3]>coins[1]+coins[4])compare(coins,0,4,1);if(coins[0]+coins[3]<coins[1]+coins[4])compare(coins,1,3,0);}else if(coins[0]+coins[1]+coins[2]<coins[3]+coins[4]+coins[5]){if(coins[0]+coins[3]==coins[1]+coins[4])compare(coins,5,2,0);else if(coins[0]+coins[3]>coins[1]+coins[4])compare(coins,3,1,0);if(coins[0]+coins[3]<coins[1]+coins[4])compare(coins,4,0,1);}}
- 八枚银币
- 八枚银币
- 八枚银币
- 八枚银币算法
- 算法思考---------八枚银币
- JAVA求解八枚银币
- Algorithm Gossip:八枚银币
- 每天一算法(八枚银币)
- 每日一算法:八枚银币
- Algorithm Gossip (9) 八枚银币
- 数据结构经典算法学习之八枚银币(简单决策树)
- 银币组合算法分析
- 抛银币 概率题
- 寻找假银币算法
- 专栏:无法落地的银币
- 20个银币1个金币
- N银币 + 1金币的问题
- 分治算法寻找假银币问题(六)
- throw与throws的区别
- 添加系统最大音量设置
- ObjectARX学习笔记(一)----中如何根据组名将组里的所有实体删除,以及清除组
- 改变不需要时间和地点的条件
- Android常用控件之GridView使用BaseAdapter
- 八枚银币
- 使用glob模块输出目录内容
- 站长
- 关于在struts.xml文件中的各个节点的配置顺序问题
- 通过崩溃trace来查找问题原因
- How to display XML in a JTree using JDOM
- 提供C语言中获取系统时间一些思路
- Java中Runnable和Thread的区别
- 开博