Algorithm Gossip:八枚银币
来源:互联网 发布:kmeans算法 编辑:程序博客网 时间:2024/05/19 22:24
/**************************************** * File Name : arithmetic.c * Creat Data : 2015.1.31* Author : ZY *****************************************/ /*Algorithm Gossip:八枚银币*//*现有八枚银币a,b,c,d,e,f,g,h,已知其中一枚是假币,其重量不同于真币,但不知是较轻或较重,如何使用天平以最少的次数比较,决定出哪枚是假币,并得知假币比真币较轻或较重*//*使用决策树(decision tree),使用分析与树状图来协助求解。先比较a+b+c与d+e+f,若相等,则假币必为g或h,我们先比较g或h哪个较重,若g较重,再与a比较,如果a,g相等,则g为真币,h为假币。*/#include <stdio.h>#include <stdlib.h>#include <time.h>void compare(int coins[],int i,int j,int k)//交换硬币,判断假币重量,输出假币是第几个是轻是重{if(coins[i] > coins[k]){printf("\n假币 %d 较重",i+1);}else{printf("\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[7]){compare(coins,6,7,0);}else{compare(coins,7,6,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);}else 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);}else if(coins[0]+coins[3] < coins[1]+coins[4]){compare(coins,4,0,1);}}}int main(void){int coins[8] = {0};int i;srand(time(NULL));//随机数for(i = 0;i < 8;i++){coins[i] = 10;}printf("\n输入假币的重量(比10大或小):");scanf("%d",&i);coins[rand()%8] = i;//随机数eightcoins(coins);printf("\n\n列出所有钱币重量:");for(i = 0;i < 8;i++){printf("%d ",coins[i]);}printf("\n");return 0;}
0 0
- Algorithm Gossip:八枚银币
- Algorithm Gossip (9) 八枚银币
- 八枚银币
- 八枚银币
- 八枚银币
- 八枚银币算法
- Algorithm Gossip :八皇后问题
- 算法思考---------八枚银币
- JAVA求解八枚银币
- Algorithm Gossip (8) 八皇后问题
- 每天一算法(八枚银币)
- 每日一算法:八枚银币
- 数据结构经典算法学习之八枚银币(简单决策树)
- Algorithm Gossip: 三色棋
- Algorithm Gossip: 三色棋
- Algorithm Gossip: 数字拆解
- Algorithm Gossip:三色棋
- Algorithm Gossip:生命游戏
- 浅析JAVA设计模式之单例模式(二)
- 求集合的所有子集(java实现)
- A. Maximum in Table( Codeforces Round #289)
- [kuangbin带你飞]专题1——简单搜索——母牛翻转问题
- UVA 562 Dividing coins 01背包
- Algorithm Gossip:八枚银币
- vim自动对齐
- ORACLE 12C新特性——CDB与PDB
- B. Painting Pebbles(Codeforces Round #289 )
- Color the ball HDU1556
- SPI总线协议学习笔记
- 【 题集 】 【kuangbin带你飞】专题六 最小生成树
- iOS屏幕旋转学习笔记
- Android应用程序发送广播(sendBroadcast)的过程分析