f********a 发帖数: 165 | 1 倒水问题 5升3升的桶,倒出4升的水。要求写出code, 打印出步骤。 输入输出自己定
义。 推还是挺容易,但是转成code不知道从何下手。
★ 发自iPhone App: ChineseWeb 8.1 |
d**********u 发帖数: 3371 | 2 DP
【在 f********a 的大作中提到】 : 倒水问题 5升3升的桶,倒出4升的水。要求写出code, 打印出步骤。 输入输出自己定 : 义。 推还是挺容易,但是转成code不知道从何下手。 : ★ 发自iPhone App: ChineseWeb 8.1
|
s**x 发帖数: 7506 | 3 http://www.geeksforgeeks.org/measure-1-litre-from-two-vessels-i
you can always get 1 liter if a and b are coprime, then pour 3 to 1.
:) |
f********a 发帖数: 165 | 4 倒水问题 5升3升的桶,倒出4升的水。要求写出code, 打印出步骤。 输入输出自己定
义。 推还是挺容易,但是转成code不知道从何下手。
★ 发自iPhone App: ChineseWeb 8.1 |
d**********u 发帖数: 3371 | 5 DP
【在 f********a 的大作中提到】 : 倒水问题 5升3升的桶,倒出4升的水。要求写出code, 打印出步骤。 输入输出自己定 : 义。 推还是挺容易,但是转成code不知道从何下手。 : ★ 发自iPhone App: ChineseWeb 8.1
|
s**x 发帖数: 7506 | 6 http://www.geeksforgeeks.org/measure-1-litre-from-two-vessels-i
you can always get 1 liter if a and b are coprime, then pour 3 to 1.
:) |
c********p 发帖数: 1969 | |
x******e 发帖数: 18 | 8 Using 2 stacks to mimic the 2 bucket, suppose s1 has 5L and s2 has 3L.
Algorithm:
1) Fill s1 to be full
2) Move the water in s1 to s2 until s2 is full
3) Empty s2
4) Move the water in s1 to s2 until s1 is empty
5) Fill s1 to be full
6) Move the water in s1 to s2 until s2 is full
Code:
#include
using namespace std;
const int kSize1 = 5;
const int kSize2 = 3;
void PourWater(stack &s1, stack &s2) {
for (int i = 0; i < kSize1; i++) {
s1.push(1);
}
for (int i = 0; i < kSize2; i++) {
int temp = s1.top();
s1.pop();
s2.push(temp);
}
while (!s2.empty()) {
s2.pop();
}
while (!s1.empty()) {
int temp = s1.top();
s1.pop();
s2.push(temp);
}
for (int i = 0; i < kSize1; i++) {
s1.push(1);
}
while (s2.size() != kSize2) {
int temp = s1.top();
s1.pop();
s2.push(temp);
}
}
【在 f********a 的大作中提到】 : 倒水问题 5升3升的桶,倒出4升的水。要求写出code, 打印出步骤。 输入输出自己定 : 义。 推还是挺容易,但是转成code不知道从何下手。 : ★ 发自iPhone App: ChineseWeb 8.1
|