4
计算绕组数
的绕组数是净逆时针转观察者必须作出遵循给定闭合路径的整数。请注意,任何顺时针旋转都会对绕组数计数为负。路径允许自相交。 下面给出了一些示例(从Wikipedia中无耻地摘录): 您的目标是计算给定路径的绕组数。 输入值 假定观察者在原点(0,0)。 输入是来自任何所需输入源的有限点序列(整数对类似),描述了分段线性路径。如果需要,可以将其展平为一维整数序列,也可以使输入模糊不清,以在所有y坐标之前取所有x坐标,反之亦然。您也可以将输入作为复数a+b i。路径可能会自相交,并且可能包含零长度段。第一点是路径的起点,假定位于正x轴上的某处。 路径的任何部分都不会与原点相交。路径将始终是封闭的(即,第一个和丢失的点是相同的)。您的代码可能暗示最后一点,也可能要求将其包括在内。 例如,根据您的喜好,两个输入都指定相同的正方形: 隐含终点 1,0 1,1 -1,1 -1,-1 1,-1 明确的终点 1,0 1,1 -1,1 -1,-1 1,-1 1,0 输出量 输出是绕组号的单个整数。这可以指向任何源(返回值,stdout,文件等)。 例子 所有示例都明确定义了端点,并以x,y对的形式给出。顺便说一句,假设隐式定义的端点,您也应该能够将这些示例直接输入任何代码中,并且输出应该相同。 1.基础测试 1,0 1,1 -1,1 -1,-1 1,-1 1,0 输出量 1 2.重复点测试 1,0 1,0 1,1 1,1 -1,1 -1,1 -1,-1 -1,-1 1,-1 1,-1 1,0 输出量 1 3.顺时针测试 …