数据结构实验之链表八:Farey序列
来源:互联网 发布:数据分析的统计基础 编辑:程序博客网 时间:2024/03/29 19:49
数据结构实验之链表八:Farey序列
Time Limit: 10MS Memory Limit: 600KB
Submit Statistic
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<n<=100)
Output
依次输出第n级序列所包含的每一个分数,每行输出10个分数,同一行的两个相邻分数间隔一个制表符的距离。
Example Input
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
#include <iostream>#include <stdlib.h>using namespace std;typedef struct node{ int data1,data2; struct node *next;}sq;void func2(sq *head,int n){ sq *tail,*p,*q; tail=head->next; while(tail->next) { q=tail->next; if(tail->data2+q->data2<=n) { p=(sq *)malloc(sizeof(sq)); p->data1=tail->data1+q->data1; p->data2=tail->data2+q->data2; tail->next=p; p->next=q; tail=q; } tail=q; p=p->next; } tail=head->next; if(tail->next->data2==n) return ; func2(head,n);}sq *func(int n){ sq *head,*tail,*p,*q; head=(sq *)malloc(sizeof(sq)); tail=head; for(int i=0;i<2;i++) { p=(sq *)malloc(sizeof(sq)); p->data1=i; p->data2=i+1; tail->next=p; tail=p; } tail->data2--; tail->next=NULL; func2(head,n); return head;}void pri(sq *head){ int i=1; sq *p; p=head->next; while(p) { if(i!=10) cout<<p->data1<<"/"<<p->data2<<"\t"; else { cout<<p->data1<<"/"<<p->data2<<endl; i=0; } i++; p=p->next; }}int main(){ int n,d; sq *head; cin>>n; head=func(n); pri(head); return 0;}
0 0
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列 C++
- 数据结构实验之链表八:Farey序列
- 数据结构实验之链表八:Farey序列
- 《c和指针》(七)
- HTML特殊符号对照表
- Biorhythms问题
- Linux信号实践(1) --Linux信号编程概述
- java中的Object类
- 数据结构实验之链表八:Farey序列
- 重载和重写的区别
- 指针
- 深度理解javascript(6):继承
- Linux信号实践(2) --信号分类
- 忘记mysql 密码,修改密码
- 使用git做版本控制
- 弹出datagrid内容的dialog框
- SVN与GIT区别