11.求循环节
成绩 | 10 | 开启时间 | 2014年11月12日 Wednesday 18:25 |
折扣 | 0.8 | 折扣时间 | 2014年11月30日 Sunday 23:55 |
允许迟交 | 否 | 关闭时间 | 2014年12月7日 Sunday 23:55 |
对于任意的真分数 N/M ( 0 < N < M ),均可以求出对应的小数。如果采用链表存储各位小数,对于循环节采用循环链表表示,则所有分数均可以表示为如下链表形式。
输入: N M
输出: 整个循环节
要求:
编写一个尽可能高效的查找循环节起始点的函数: NODE * find( NODE * head, int * n ) 。函数的返回值为循环节的起点(即图中的指针p),n为循环节的长度。
说明:提交程序时请同时提交将分数转换为小数的函数 change( int n, int m, NODE * head ) (前面题目中已经编写)。
预设代码
前置代码
- /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct node
- { int data;
- struct node * next;