编程找规律1
编程找规律1
zengxiangwei 发表于4年前
编程找规律1
  • 发表于 4年前
  • 阅读 40
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

 

/****************************************************************************

找规律1.如下序列,查找规律并编程实现

1 3

1 1 1 3

3 1 1 3

1 3 2 1 1 3

1 1 1 3 1 2 2 1 1 3

3 1 1 3 1 1 2 2 2 1 1 3

分析

序列中很明显下一行是对上一行的解释,如一行1 3 第二行 1 1 1 3,意思是上一行

依次为 1 113 ,接下来依次如此。

这样就可以依次推出全部的序列。

程序中我们用数组a存放一行的值,依次推出的下一行存放在数组b,如此反复,

直到达到要求为止。

****************************************************************************/

 

/*******************************************************************************
Copyright (c)哈尔滨工程大学  曾相未  保留所有权利。


文件名: main.cpp

描述: 问题求解查找规律
作者: 曾相未
时间:2013/9/30

*******************************************************************************/

#include <iostream> 


using namespace std; 

//打印数组 

void display(int *aa,int n) 

{ 

    for (int k = 0;k < n;k++) 

        cout << aa[k] <<" "; 

    cout << endl; 

} 

/*数组拷贝 

 */ 

void arraycopy(int *a,int *b,int t) 

{ 

  for(int i = 0;i < t;i++) 

        a[i] = b[i]; 

} 


int a[200],b[200];//存放序列 


int main() 

{ 

    a[0] = 1; 

    a[1] = 3; 

    int t = 2,iflag = 9;//t:每次数组中元素个数;iflag+1为需要打印的行数 

    int i,j; 

    display(a,t); 

    while( iflag > 0)//达到行数要求后停止 

    { 

        int icount = 1; 

        j = 0; 

        for( i = 0;i < t;i ++)//扫描数组 

        { 

            if(a[i] == a[i + 1])//如果当前数与下一个相同,计数器icount加1,否则对数字b进行填充 

            { 

                icount ++; 

                continue; 

            } 

           else 

           { 

               b[j ++] = icount; 

               b[j ++] = a[i]; 

               icount = 1; 

           } 

        } 

        t = j ; 

        display(b,t); 

        arraycopy(a,b,t); 

        iflag --; 

    } 

    return 0; 

}
共有 人打赏支持
粉丝 9
博文 14
码字总数 18092
×
zengxiangwei
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: