C++ Programmer's Cookbook

{C++ 基础} {C++ 高级} {C#界面,C++核心算法} {设计模式} {C#基础}

2道C++面试题

 

一 逻辑题


在一张东景照片上,人们分别戴着帽子,系着围巾和戴着者手套.只戴帽子的人数与只系围巾和只戴手套的人数相等:只有4人没有戴帽子:戴着帽子和系着围巾,但没有戴手套的有5人:只戴帽子的人数两倍于只系围巾者:未戴手套者8人,未系围巾者7人:三样东西都用上了的人比只戴帽子的人多一个.那么请问:多少人同时用上了帽子,围巾和手套?多少人只戴了手套?多少人只系了围巾?多少人既戴了帽子,又戴了手套,但没系围巾?多少人戴着手套?照片上一共有多少个人?

如果用纯代数的方法来做,就这样。
设:只戴帽子的人数为A,只围巾B,只手套C,只帽子围巾D,只帽子手套E,只围巾手套F,都带的G 得:
A=B+C(只戴帽子人数与只系围巾和只戴手套的人数和相等 )
B+C+F=4 (只有4人没有戴帽子)
D=5(戴着帽子和系着围巾,但没有戴手套的有5人)
A=2B(只戴帽子的人数两倍于只系着巾)
A+B+D=8(未戴着手套者8人)
A+C+E=7(未系围巾者7人)
G=A+1 (三样东西都用上了的人比只戴帽子的人多一个)
从D=5 A=2B A+B+D=8 这3个式子开始解
最后得出A=2 B=1 C=1 D=5 E=4 F=2 G=3 



二 汉诺塔

#include<iostream>
#include
<string>

using namespace std;

void Hanoi(int n,char A,char B,char C);

void main()
{
    Hanoi(
5,'A','B','C');
}


void Hanoi(int n,char A,char B,char C)
{
    
if(n==1)
        cout
<<"Move top disk from peg "<<A<<" to peg "<<C<<endl;
    
else
    
{
        Hanoi(n
-1,A,C,B);
        cout
<<"Move top disk from peg "<<A<<" to peg "<<C<<endl;
        Hanoi(n
-1,B,A,C);
    }

}


完!

posted on 2010-12-21 20:59 梦在天涯 阅读(5244) 评论(7)  编辑 收藏 引用 所属分类: CPlusPlus

评论

# re: 2道C++面试题 2011-07-07 22:32 放屁阿狗

面试让我做题,直接反感  回复  更多评论   

# re: 2道C++面试题 2011-10-14 17:10 greazen

只戴帽子的人数与只系围巾和只戴手套的人数相等:
只戴帽子的人数两倍于只系围巾者

矛盾吧.  回复  更多评论   

# re: 2道C++面试题 2013-03-17 13:37 URIAHC

不矛盾,意思是只戴帽子的人数等于只系围巾的人数与只戴手套的人数之和。
那是不是还要考虑三者都没戴的呢?根据约束(都没戴的人数大于等于0)算,详细见我的主页  回复  更多评论   

# re: 2道C++面试题 2013-08-09 11:37 zyq11223

面试题啊!!  回复  更多评论   

# re: 2道C++面试题 2013-11-06 22:18 岁月漫步

这种题真实变态啊  回复  更多评论   

# re: 2道C++面试题 2013-11-06 22:18 岁月漫步

这样的公司很快倒闭  回复  更多评论   

# re: 2道C++面试题 2013-12-25 16:05 颠倒是非

相等:只有4人没有戴帽子:戴着帽子和

全是冒号到底要表达什么意思, 无语  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


公告

EMail:itech001#126.com

导航

统计

  • 随笔 - 461
  • 文章 - 4
  • 评论 - 746
  • 引用 - 0

常用链接

随笔分类

随笔档案

收藏夹

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

积分与排名

  • 积分 - 1797014
  • 排名 - 5

最新评论

阅读排行榜