数据结构实验之链表八:Farey序列
来源:互联网 发布:个人域名转企业域名 编辑:程序博客网 时间:2024/06/06 07:50
Problem Description
Farey序列是一个这样的序列:其第一级序列定义为(0/1,1/1),这一序列扩展到第二级形成序列(0/1,1/2,1/1),扩展到第三极形成序列(0/1,1/3,1/2,2/3,1/1),扩展到第四级则形成序列(0/1,1/4,1/3,1/2,2/3,3/4,1/1)。以后在每一级n,如果上一级的任何两个相邻分数a/c与b/d满足(c+d)<=n,就将一个新的分数(a+b)/(c+d)插入在两个分数之间。对于给定的n值,依次输出其第n级序列所包含的每一个分数。
Input
输入一个整数n(0
6
Example Output
0/1 1/6 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/44/5 5/6 1/1
Hint
Author
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <bits/stdc++.h>#include <algorithm>using namespace std;typedef struct list{ int data1, data2; struct list *next;}nlist;int main(){ nlist *head, *last; head=(nlist *)malloc(sizeof(nlist)); last=(nlist *)malloc(sizeof(nlist)); head->next=last; head->data1=0; head->data2=1; last->next=NULL; last->data1=1; last->data2=1; int n; scanf("%d", &n); int i=n; n--; nlist *mail=head; while(n--) { mail=head; while(mail->next) { if(mail->data2+mail->next->data2<=i) { nlist *p; p=(nlist *)malloc(sizeof(nlist)); p->data1=mail->data1+mail->next->data1; p->data2=mail->data2+mail->next->data2; p->next=mail->next; mail->next=p; } mail=mail->next; } } mail=head; int top=1; int kk=0; while(mail) { if(kk%10==0&&kk)printf("\n"); else if(top==1)top=0; else printf("\t"); printf("%d/%d", mail->data1, mail->data2); mail=mail->next; kk++; } return 0;}
0 0
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列 C++
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 二叉查找树(二叉排序树)创建、插入、删除、查找-C语言
- 静态方法与动态方法的区别
- AutoCad.net开发(2)
- 学习笔记:Linux下编写内核模块(0)
- android中的事件分发与消费机制简答介绍
- 数据结构实验之链表八:Farey序列
- VS2013使用注意事项
- 30、Power Query-搞清Power Query中的表结构
- 洛谷 P1540 机器翻译
- 参加”WEEX Conf“小体会
- DML数据操纵语言
- linux常用命令
- Realm使用教程
- 数据结构实验之链表九:双向链表