为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

伪造硬币问题

2017-10-29 4页 doc 14KB 16阅读

用户头像

is_180829

暂无简介

举报
伪造硬币问题伪造硬币问题 此代码很有用 共有0人认为此代码有用 伪造硬币问题 鉴客 发布于 2011年04月20日 16时 (2评) 0人收藏此代码, 我要收藏(?) 给你一个装有n个硬币的袋子。n个硬币中有一个是伪造的。你的任务是找出这个 伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪 器,利用这台仪器,可以知道两组硬币的重量是否相同。试用分治法的思想写出解 决问题的算法,并计算其时间复杂度。 #include #include #include #define N 6 void set...
伪造硬币问题
伪造硬币问 此代码很有用 共有0人认为此代码有用 伪造硬币问题 鉴客 发布于 2011年04月20日 16时 (2评) 0人收藏此代码, 我要收藏(?) 给你一个装有n个硬币的袋子。n个硬币中有一个是伪造的。你的任务是找出这个 伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪 器,利用这台仪器,可以知道两组硬币的重量是否相同。试用分治法的思想写出解 决问题的算法,并计算其时间复杂度。 #include #include #include #define N 6 void setWrong(int *coin,int n) { int i; int ran; for(i=0;i
示需要找假硬币的数组; param astart 前一个分组的开始; param bstart 后一个分组的开始; param n 每个分组的长度; */ int compare(int *coin,int astart,int bstart,int n) { int asum=0; int bsum=0; int i; for(i=astart;ibsum) return 1; } int find(int *coin,int start,int n) { if(n==1) { printf("第%d个是假币",start); return start; } if((n%2)==0) { if(compare(coin,start,n/2,n/2)==-1) find(coin,start,n/2); else if(compare(coin,start,n/2,n/2)==0) return -1; else find(coin,n/2,n/2); } else { if(compare(coin,start,start+(n-1)/2,(n-1)/2)==-1) find(coin,start,(n-1)/2); else if(compare(coin,start,start+(n-1)/2,(n-1)/2)==0) find(coin,start+n-1,1); else find(coin,start+(n-1)/2,(n-1)/2); } } void main() { int a[N]; setWrong(a,N); printf("%d",find(a,0,N)); }
/
本文档为【伪造硬币问题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索