本题使用所谓的辗转相除法。
还需要逆过来遍历二叉树。可以想象给出的数据点是根节点,然后遍历到根节点(1,1)。
考的是根据给出的规则,总结规律的能力。
#include <stdio.h>
namespace BinaryTree2499_1
{
int main()
{
int T, a, b, le, ri;
scanf("%d", &T);
for (int t = 1; t <= T; t++)
{
scanf("%d %d", &a, &b);
le = 0, ri = 0;
while (a != 1 || b != 1)
{
if (a == 1 || b == 1)
{
if (a == 1)
{
ri += b - a;
b = 1;
}
else
{
le += a - b;
a = 1;
}
}
else if (a < b)
{
ri += b / a;
b %= a;
}
else
{
le += a / b;
a %= b;
}
}
printf("Scenario #%d:\n%d %d\n\n", t, le, ri);
}
return 0;
}POJ 2499 Binary Tree 题解,布布扣,bubuko.com
原文:http://blog.csdn.net/kenden23/article/details/36889699