首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

高手来帮小弟我看看这个斐波那契非递归程序

2012-04-24 
高手来帮我看看这个斐波那契非递归程序#include iostreamusing namespace stdint main(){int n,a1,b2

高手来帮我看看这个斐波那契非递归程序
#include <iostream>
 using namespace std; 
 int main()
 { 
int n,a=1,b=2; 
cout<<"Please input n:"<<endl;
cin>>n;
for(int i=0;i<n-1;i++)
{
a=b^a; b=b+a^b; a=a^a; 
}
cout<<a<<endl;
return 0;
 }

有一个警告,结果也不对,请求解决,我完全小白。不是本专业的,希望大家说详细点。谢谢

[解决办法]
没必要异或
#include <iostream>
 using namespace std;
 int main()
 {
int n,t,a=1,b=2;
cout<<"Please input n:"<<endl;
cin>>n;
for(int i=0;i<n-1;i++)
{
t=b;
b=a+b;
a=b;
}
cout<<a<<endl;
return 0;
 }

[解决办法]

C/C++ code
#include <iostream> using namespace std;   int main() {  int n,a=1,b=2;  cout<<"Please input n:"<<endl;cin>>n;for(int i=0;i<n-1;i++){    a=a+b;    /// 交换a,b两个的值    a=a^b;      b=b^a;    a=a^b;}cout<<b<<endl;  //应该输出b值return 0; }
[解决办法]
C/C++ code
#include <iostream> using namespace std;   int main() {  int n,a=1,b=1;  cout<<"Please input n:"<<endl;cin>>n;for(int i=0;i<n-1;i++){    a=a+b;    /// 交换a,b两个的值    a=a^b;      b=b^a;    a=a^b;}cout<<b<<endl;  //应该输出b值return 0; }
[解决办法]
探讨
没必要异或
#include <iostream>
using namespace std;
int main()
{
int n,t,a=1,b=2;
cout<<"Please input n:"<<endl;
cin>>n;
for(int i=0;i<n-1;i++)
{
t=b;
b=a+b;
a=b;
}
cout<<a<<endl;
r……

[解决办法]
C/C++ code
#include <iostream>using namespace std;  int main(){      int n,a=1,b=1;          cout<<"Please input n:"<<endl;    cin>>n;        for(int i=2/*不是0*/;i<n/*注意这里是小于*/;i++)//斐波那契数列的n是大于等于三的    {    /*    a=b^a;        b=b+a^b;        a=a^a;    */    //菜鸟就别随便用异或,至少你要先理解异或是怎么来的        a=a+b;        b=a^b;        a=a^b;        b=b^a;            }    cout<<b<<endl;        //输出最后一位    return 0;}
[解决办法]
C/C++ code
#include <iostream>   using namespace std;int f(int n){    if(n<=0)    {        return 0;    }    else if(n == 1 || n == 2)    {        return 1;    }    else    {        int a=1;        int b=1;        int c;        for(int i=3;i<=n;i++)        {            int a=1;//往前第二个数            int b=1;//往前第一个数            int c;//需要求的数        }        return c;    }}int main(){    cout<<f(3)<<endl;    cout<<f(4)<<endl;    cout<<f(5)<<endl;    cout<<f(6)<<endl;    cout<<f(7)<<endl;    getchar();    return 0;} 

热点排行