柔性数组 斐波拉契序列

来源:互联网 发布:淘宝销量计算规则 编辑:程序博客网 时间:2024/04/30 10:18
#include #include typedef struct SoftArray{    int length;    int array[];}SoftArray;SoftArray* CreatSoftArray(int size){    SoftArray* ret = NULL;    if(size > 0)    {        //4 + size个ret型大小的空间        ret = (SoftArray*)malloc( sizeof(*ret) + sizeof( *(ret->array)) * size );        ret->length = size;    }    return ret;}void FreeSoftArray(SoftArray* p){    free(p);}void FibSeq(SoftArray* p){    int i = 0;    if( NULL != p)    {        if( 1 == p->length)        {            p->array[0] = 1;        }        else if( 2 == p->length)            {                p->array[0] = 1;                p->array[1] = 1;            }            else            {                p->array[0] = 1;                p->array[1] = 1;                for(i = 2; i < p->length; i++)                {                    p->array[i] = p->array[i-1] + p->array[i-2];                }            }    }}int main(){    int i = 0;    int N;    scanf("%d", &N);    SoftArray* p = CreatSoftArray(N);    FibSeq(p);    for(i = 0; i < p->length; i++)    {        printf("%d ", p->array[i]);    }    FreeSoftArray(p);    return 0;}
原创粉丝点击