函数

来源:互联网 发布:matlab读取txt文件数据 编辑:程序博客网 时间:2024/06/05 10:44
2017.11.30
函数
1个x只能对应一个y
若只声明,需要加分号;
函数调用后实参不会改变
&代表引用
1引用是一个变量的别名
2引用存储的是地址
3没复制数据,函数调用后,释放内存,实参改变
*内联函数 inline    (系统开销)

函数递归 *递归一定要有出口--停止条件

1.斐波那契数列,

int rabbit(int m)
{
    if(m==1||m==2)
        return 1;
    else
        return rabbit(m-1)+rabbit(m-2);
}
#include<iostream>
using namespace std;
void main()
{int m,i;
    while(cin>>m)
        for( i=1;i<=m;i++)
        cout<<rabbit(i)<<" ";
    if( i%15==0)
        cout<<endl;
}//当你输入的m越来越大时,生成rabbit(m)所用时间会大大增加,因为,递归会占用大量的内存开销

2.//(不知为何,当m=2时,错误;)m=46时,值为1 836 311 903当m=47时,由于生成的数大于2^31,直接输出-2 147 483 648错误。2^32=4 294 967 296;2^31=2 147 483 648

int rabbit1(int n)
{int m=(pow((1+2.2360679774998 )/2,n)-pow((1-2.2360679774998 )/2,n))*(1/2.2360679774998 );
    return m;
}
    #include<iostream>
using namespace std;
void main()
{int m,i;
    while(cin>>m)
        for( i=1;i<=m;i++)
        cout<<rabbit1(i)<<" ";
    if( i%15==0)
        cout<<endl;
}

2.下楼问题




原创粉丝点击