网站大量收购闲置独家精品文档,联系QQ:2885784924

08 问题求解.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08 问题求解

数组中只出现一次的数字 void FindNumsAppearOnce(int data[], int length, int* num1, int* num2) { if (data == NULL || length 2) return; int resultExclusiveOR = 0; for (int i = 0; i length; ++ i) resultExclusiveOR ^= data[i]; unsigned int indexOf1 = FindFirstBitIs1(resultExclusiveOR); *num1 = *num2 = 0; for (int j = 0; j length; ++ j) { if(IsBit1(data[j], indexOf1)) *num1 ^= data[j]; else *num2 ^= data[j]; } } 数组中只出现一次的数字 // 找到num从右边数起第一个是1的位 unsigned int FindFirstBitIs1(int num) { int indexBit = 0; while (((num 1) == 0) (indexBit 8 * sizeof(int))) { num = num 1; ++ indexBit; } return indexBit; } ? // 判断数字num的第indexBit位是不是1 bool IsBit1(int num, unsigned int indexBit) { num = num indexBit; return (num 1); } 可口可乐瓶 便利店给出以下的优惠: 每 3 个空瓶可以换 1 瓶可口可乐。 现在,你准备从便利店买一些可口可乐(n瓶),你想知道你最多可以从便利店拿到多少瓶可口可乐? 以 8 瓶为例,可以获得多少?。 你也可以从朋友(或店主)那里借一个空瓶,这样可以获得多少? 可口可乐瓶 设想买的可口可乐的瓶数为 n;借的空瓶数为 i; 总瓶数为 cnt,兑换前为 cnt=n+i; 实际喝到的可口可乐瓶数为 tot,兑换前 tot=n ; ans为最多可喝到的可口可乐瓶数,初始时为0。 可以反复模拟如下兑换过程,直至cnt=3为止: 产生的空瓶数tmp = cnt%3; 增加的饮料瓶数cnt /= 3; 实际喝到的饮料瓶数tot += cnt; 总瓶数cnt += tmp; //若能偿还借来的空瓶且喝到的饮料最多,则记下 If (cnt = i totans ) ans=tot; 由于每3个空瓶可以换1瓶可口可乐,因此只有i=0,1,2 这三种情况。 字符串的排列 输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 字符串的排列 void Permutation(char* pStr) { if(pStr == NULL) return; Permutation(pStr, pStr); } void Permutation(char* pStr, char* pBegin) { if(*pBegin == \0) printf(%s\n, pStr); else { for(char* pCh = pBegin; *pCh != \0; ++ pCh) { char temp = *pCh; *pCh = *pBegin; *pBegin = temp; Permutation(pStr, pBegin + 1); temp = *pCh; *pCh = *pBegin; *pBegin = temp; } } } 电梯调度 某研究院所在的创新大厦一共有 6 部电梯。在高峰时间,每层都有人上下,电梯在每层都停。实习生小飞常常会被每层都停的电梯弄得很不耐烦,于是他提出了这样一个办法: 由于楼层并不太高,那么在繁忙的

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档