雅虎北京研究院中文hack大赛:寻找分数小数点后位置与网格点问题

需积分: 3 3 下载量 5 浏览量 更新于2024-09-15 收藏 30KB DOCX 举报
雅虎北京研究院举办的hack大赛题目提供了一道有趣的编程挑战,分为两个部分: 第一个问题:有理数除法问题 该问题要求参赛者编写程序,给定两个整数A和B(0 < A, B < 2 * 10^8),以及一个整数M(0 <= M <= 9),目标是找到A除以B的小数点后第M位数字D(0-9)在小数循环中的位置。例如,对于3/7=0.4285714285…,当M=2时,数字4的位置是7。输入部分包括测试用例数量N,以及每个测试案例中A、B、M和D的值。 第二个问题:二维网格上的三角形面积计算 参与者需要处理一个N*N(N为偶数)的网格,其中N的范围在0到1010之间,网格中有六个点A、B、C、D、E、F,每个点都有坐标(xa, ya), (xb, yb), ..., (xf, yf)。任务是找出满足特定条件的6个点,使得网格上两个三角形(ABC和DEF)的面积之和(S)乘以2等于给定的S值。输入是每行包含的N和S值,输出则是对应三角形的点A、B、C的坐标。 解决这两个问题需要掌握一定的算法技巧,比如对于有理数除法问题,可以考虑利用模运算来确定循环模式;对于几何问题,则可能涉及到多边形面积公式和组合优化。参赛者需要运用C#或其他支持的编程语言,设计高效的算法,并确保代码能够处理大量测试用例,同时满足时间复杂度和空间复杂度的要求。在解决问题的过程中,编程基础、数学思维和对算法的理解都是关键要素。