三个桶,分别为19升(空)、13升(满)、7升(满),请问最少多少步可以做到两个10升的??
2011-12-23 22:49
225 查看
void MoveOne()
{
int A=13, B=7, C=0;
int MaxA=13, MaxB=7, MaxC=19;
//*******************************************************************
B = 0;
C = 7;
cout<<"B->C: "<<A<<" "<<B<<" "<<C<<endl;
A = 1;
C = 19;
cout<<"A->C: "<<A<<" "<<B<<" "<<C<<endl;
//*******************************************************************
while(C-MaxB != 10)
{
while(1)
{
B = (C>MaxB) ? MaxB : C;
C = C - B;
cout<<"C->B: "<<A<<" "<<B<<" "<<C<<endl;
int temp = A+B>MaxA ? A+B-MaxA : 0;
A= A+B>MaxA ? 13 : A+B;
B = temp;
cout<<"B->A: "<<A<<" "<<B<<" "<<C<<endl;
if(B != 0)
{
break;
}
}
C=A+C;
A=0;
cout<<"A->C: "<<A<<" "<<B<<" "<<C<<endl;
A=B;
B=0;
cout<<"B->A: "<<A<<" "<<B<<" "<<C<<endl;
}
//*******************************************************************
C = C-MaxB;
B = MaxB;
cout<<"C->B: "<<A<<" "<<B<<" "<<C<<endl;
A= A+B;
B=0;
cout<<"B->A: "<<A<<" "<<B<<" "<<C<<endl;
}
{
int A=13, B=7, C=0;
int MaxA=13, MaxB=7, MaxC=19;
//*******************************************************************
B = 0;
C = 7;
cout<<"B->C: "<<A<<" "<<B<<" "<<C<<endl;
A = 1;
C = 19;
cout<<"A->C: "<<A<<" "<<B<<" "<<C<<endl;
//*******************************************************************
while(C-MaxB != 10)
{
while(1)
{
B = (C>MaxB) ? MaxB : C;
C = C - B;
cout<<"C->B: "<<A<<" "<<B<<" "<<C<<endl;
int temp = A+B>MaxA ? A+B-MaxA : 0;
A= A+B>MaxA ? 13 : A+B;
B = temp;
cout<<"B->A: "<<A<<" "<<B<<" "<<C<<endl;
if(B != 0)
{
break;
}
}
C=A+C;
A=0;
cout<<"A->C: "<<A<<" "<<B<<" "<<C<<endl;
A=B;
B=0;
cout<<"B->A: "<<A<<" "<<B<<" "<<C<<endl;
}
//*******************************************************************
C = C-MaxB;
B = MaxB;
cout<<"C->B: "<<A<<" "<<B<<" "<<C<<endl;
A= A+B;
B=0;
cout<<"B->A: "<<A<<" "<<B<<" "<<C<<endl;
}
相关文章推荐
- 有一个阶梯有n级,每次可以走1,2,3,4级,请问分别有多少种走法?
- 27个运动员在参加完比赛后,口渴难耐,去小店买饮料,饮料店搞促销,凭三个空瓶可以再换一瓶,他们最少买多少瓶饮料才能保证一人一瓶
- Hdu 5807 Keep In Touch(有三个人分别在三个位置,每一秒各走一步,三个城市可以联络的要求是两两权值差小于等于K。 问有多少种不同的方案,让这三个人可以联络。)
- 两个圆,半径分别为1cm,3cm,小圆在大圆外,绕大圆圆周一周,请问小圆一个旋转了多少圈?
- 2.你有三个碗:分别是8,5,3公升容量。你能用最少的次数倒出两个四升水吗?
- 老太太有一筐数土豆,她两个两个一数剩一个,三个三个一数剩两个,四个四个一数剩三个,五个五个一数剩四个,六个六个一数剩五个。请问老太太至少有多少个土豆
- 3.你有三个碗:分别是7,4,3升容量。只有7升那个是满的。用最少次数倒出分别是2,2,和3升水。
- “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。
- 一个楼梯有50个台阶,一次可以走一个台阶,也可以走两个台阶,也可以走三个台阶,问总共有多少种走法.
- 给定一个整数数组,在该数组中,寻找三个数,分别代表三角形三条边的长度,问,可以寻找到多少组这样的三个数来组成三角形?
- [LintCode 382]给定一个整数数组,在该数组中,寻找三个数,分别代表三角形三条边的长度,问,可以寻找到多少组这样的三个数来组成三角形?
- 一根只有三个刻度的 9 寸长的尺子,只量一次可以量长度为 1 到 9 寸的长度为整数的物体,求尺 子上的刻度分别是多少
- 请问三个女儿的年龄分别是多少
- 一元钱一瓶水,两个空瓶可以换一瓶,三个盖儿可以换一瓶,20元最多能喝多少?
- 面试题—有两个无刻度的水桶,分别能装7升水(记为A)和5升水(记为B),那么通过这两个桶可能获得多少升水
- 将[1,n^2]区间内n^2个数字分别填充到n*n的矩阵里,要求任意两个相邻的数字的和,它们的最大值最小是多少?
- C语言:每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水。
- k个瓶子可以换1瓶酒,要喝n瓶酒,最少需要买多少瓶酒?
- poj 1236 Network of Schools 1)至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 2)至少要加多少条边,才能使得从任何一个顶点出发,都能到达全部顶点
- 计算两个日期之间有多少个工作日的方法(同理也可以计算有多少个双休日)