设为首页 加入收藏

TOP

C++面试 逻辑题
2011-04-30 03:49:34 来源: 作者: 【 】 浏览:2156
Tags:面试 逻辑

一 逻辑题


在一张东景照片上,人们分别戴着帽子,系着围巾和戴着者手套.只戴帽子的人数与只系围巾和只戴手套的人数相等:只有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);

    }

}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇面试题-rss链接 下一篇出现频率最高的笔试题【C/C++ str..