求循环节
来源:互联网 发布:网络谣传实例 编辑:程序博客网 时间:2024/05/22 15:44
#include <stdio.h>#include <stdlib.h>typedef struct node{int data;struct node * next;} NODE;NODE * find(NODE *, int *);void outputring(NODE *);void change(int, int, NODE *);void change(int n, int m, NODE *head){int a = n, b[50] = { 0 }, i = 0, j = 0;NODE * tmp = NULL;NODE * p = NULL, *q = head;do{b[i++] = a *= 10;for (p = head->next, j = 0; p != NULL && j<i - 1; p = p->next){if (b[j++] == a){q->next = p;return;}}tmp = (NODE *)malloc(sizeof(NODE));tmp->data = a / m;a %= m;q->next = tmp;q = tmp;q->next = NULL;} while (a && i<50);}NODE * find(NODE * head, int * n){NODE *L = head;int a[55];NODE *start, *end;int num = 0;L = head->next;int i = 1;a[i++] = L->data;while (L->next != NULL&&L->next->data!=-1)//两个条件不可以交换,因为先判断data若是NULL报错{L->data = -1;L = L->next;a[i++] = L->data;}if (L->next == NULL){*n = 0;return NULL;}else {start = L->next;end = L;num = 1;int flag;if (start == end)flag = 1;elseflag = 0;while (start != end){start = start->next;num++;}*n = num;if (flag==1){i = 1;NODE *p = head->next;while (p != end){p->data = a[i];p = p->next;i++;}start->data = a[i];}else{i = 1;NODE *p = head->next;while (p != end){p->data = a[i];p = p->next;i++;}}return L->next;}}void outputring(NODE * pring){NODE * p;p = pring;if (p == NULL)printf("NULL");elsedo{printf("%d", p->data);p = p->next;} while (p != pring);printf("\n");return;}int main(){int n, m;NODE * head, *pring;scanf_s("%d%d", &n, &m);head = (NODE *)malloc(sizeof(NODE));head->next = NULL;head->data = -1;change(n, m, head);pring = find(head, &n);printf("ring=%d\n", n);outputring(pring);int ss = 1;system("pause");return 0;}
阅读全文
0 0
- 11.求循环节
- 求循环节
- HDU3746KMP求最小循环节
- poj1961 KMP求循环节
- 求小数的循环节
- KMP求循环节问题
- kmp求最小循环节
- POJ 2406 KMP求字符串循环节
- hdu 1358 period 求循环节 KMP
- 数据结构——求循环节
- 5.1.3(求最小循环节)
- Cyclic Nacklace +KMP求循环节
- 如何求一个真分数的循环节
- poj2406PowerString(kmp求循环节)
- hdu 4291(矩阵+暴力求循环节)
- poj2185 KMP求字符串循环节
- Power Strings(求循环节)
- 求Fibonacci数列的循环节
- Linux内核——3个汇编程序bootsect、setup以及system(head.s)
- 学习笔记03(数据库查询)
- JVM系列:解决JVM最大内存设置问题
- 【Spring-data-jpa】根据userId删除用户信息
- CSS-相关练习1-表格实现奇数行和偶数行自行判断设置不同的背景颜色
- 求循环节
- Linux简介
- 1041. 考试座位号(15)--Python
- 装系统体验②
- HDU 5104-Primes Problem
- B
- MYSQL中group_concat有长度限制!默认1024
- 将 Centos 的 yum 源更换为国内的阿里云源
- localhost和127.0.0.1的概念