• 单链表2(Farey序列)


    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级序列所包含的每一个分数。

    输入

    输入一个整数n(0<n<=100)

    输出

    依次输出第n级序列所包含的每一个分数,每行输出10个分数,同一行的两个相邻分数间隔一个制表符的距离。

    样例输入

    6

    样例输出

    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

    #include"iostream"
    using namespace std;
    class List{
    private:
        int mole;
        int deno;
        List *next;
    public:
        List(int mole = 0,int deno = 0){
            this->mole = mole;
            this->deno = deno;
            this->next = NULL;
        }
        void deleteNote(){            //删除后一个结点
            List *temp = this->next;
            this->next = this->next->next;
            delete temp;
        }
        void show(){
            List *p = this->next;
            while(p){
                cout<<p->mole<<"/"<<p->deno<<"  ";
                p = p->next;
            }
            cout<<endl;
        }
        List *insertf(int mole,int deno){
            List *newp = new List(mole,deno);
            if(!newp){
                cout<<"out of space!"<<endl;
                return NULL;
            }
            newp->next = this->next;
            this->next = newp;
            return newp;
        }
        void fraction(int n){
            List *p = this;
            int i = 1;
            p = p->insertf(0,1);
            p->insertf(1,1);
            while(i++!=n){
                p = this->next;
                while(p->next){
                    if(p->deno + p->next->deno <= i){
                        p = p->insertf(p->mole + p->next->mole,p->deno + p->next->deno);
                    }
                    p = p->next;
                }
            }
        }
    };
        
    int main(){
        List L,*p = &L;
        L.fraction(1000);
        L.show();
        return 0;
    }
  • 相关阅读:
    五。java运算符
    二。java的第一个程序
    四。java常量的学习以及数据类型转换
    修改Launcher源码之快速启动
    Eclipse导入Android项目的方法
    js日期时间控件脚本
    Android中的soundpool小结
    Android GPS (当前位置 & GPS信息更新)
    android利用WebView实现浏览器的封装
    Android选项卡置底的方法
  • 原文地址:https://www.cnblogs.com/oleolema/p/9033060.html
Copyright © 2020-2023  润新知