日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构实验之链表八:Farey序列

發布時間:2025/3/21 编程问答 6 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构实验之链表八:Farey序列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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個分數,同一行的兩個相鄰分數間隔一個制表符的距離。
Sample
Input
6
Output
0/1 1/6 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4
4/5 5/6 1/1
Hint

#include<bits/stdc++.h>using namespace std;typedef struct node {int a;int b;struct node *next; } List;List *creat()//初始化鏈表 {List *head, *tail, *p;head = new List;head->next = NULL;tail = head;p = new List;p->a = 0;p->b = 1;p->next = NULL;tail->next = p;tail = p;p = new List;p->a = 1;p->b = 1;p->next = NULL;tail->next = p;tail = p;return head; } void Link(List *head, int n)//增加內容 {int k = 1;List *p1, *p2, *p;while(k){p1 = head->next;p2 = p1->next;p = NULL;while(p2)//每一次的判斷都是從頭開始,直到(c+d)> n,這時p為空{if((p1->b + p2->b) <= n){p = new List;p->a = p1->a + p2->a;p->b = p1->b + p2->b;p->next = p1->next;p1->next = p;}p1 = p2;p2 = p2->next;}if(p == NULL)k = 0;} } void display(List *head)//遍歷 {List *p;int k = 0;p = head->next;while(p){k++;if(k < 10)printf("%d/%d\t", p->a, p->b);else if(k == 10){printf("%d/%d\n", p->a, p->b);k = 0;}p = p->next;} } int main() {int n;List *head;scanf("%d", &n);head = creat();Link(head, n);display(head);return 0; }

總結

以上是生活随笔為你收集整理的数据结构实验之链表八:Farey序列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。