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