美文网首页
孟德尔 分配 规律 递归思想输出

孟德尔 分配 规律 递归思想输出

作者: LuckTime | 来源:发表于2016-06-18 09:54 被阅读20次

    以下程序 不对,仅供思路思考。。用二叉树比较好
    /*

    include<iostream>

    using namespace std;

    int twin(int n);

    int main()
    {
    int b[20];
    int n;
    int i;//起始值
    cin>>n;
    cout<<twin(n)<<endl;

    }
    int twin( int n ) //双重递归
    {
    int a[1];
    a[1] = 3;
    if(n > 0 && n == 1)
    return a[1];
    else
    {
    return a[1]*twin(n-1);

    }

    */

    include<iostream>

    using namespace std;

    int twin02a(int n);
    int twin02b(int n);
    int twin03(int n);
    int mendel(int n,int i);

    int main()
    {
    int n ,i=0 ;
    int j;
    int c;
    cin >> n;
    c = twin03(n); //形状比个数
    cout<<c<<endl;
    for(j = 0;j < c ;j++)
    {
    cout<<mendel( n, i )<<endl;;
    --n;
    }//cout << twin02a(n) << endl;
    //cout<< twin02b <<endl;
    }
    int twin02a( int n ) //第二层递归
    {
    //int b[n*n];
    //int i=0;

    /*if(n >= 0 && n == 2)
    return 3;
      */
    

    if(n==1)
    return 1;
    else
    {
    // for(int i=0; n-i>0 ; i++)
    return 3 * twin02a(n - 1) ;//* twin(i);
    //cout<<"1"<<endl;
    }
    }

    int twin02b( int i )
    {

    //int b[n*n];
    //int i=0;

    /*if(i >= 0 && i == 1)
    return 1;
    */
      if(i==0)
      return 1;
    else
    {
    //  for(int i=0; n-i>0 ; i++)
        return 1 * twin02b(i - 1) ;//* twin(i);
    //cout<<"1"<<endl;
    }
    

    }

    int mendel(int n,int i)
    {
    //if(n==1)
    //cout<< twin02b(1) << ":" << twin02a(1) <<endl;
    //else
    {
    return twin02a(n - i) * twin02b(i);
    i++;
    }
    }

    // 个数为2^n

    int twin03(int n)
    {
    if(n==1)
    return 2;
    else
    {
    return 2 *twin03(n-1);
    }

    }

    相关文章

      网友评论

          本文标题:孟德尔 分配 规律 递归思想输出

          本文链接:https://www.haomeiwen.com/subject/eznvdttx.html