文章

67

粉丝

207

获赞

29

访问

34.8k

头像
N阶楼梯上楼问题 题解:这题真坤贼啊,偷摸用递归时间不达标

#include <iostream>
using namespace std;

long long c[100];
/*
int a(int n){

	 if(n==0)
		return 1;
	 if(n<0)
		 return 0;
	return a(n-1)+a(n-2);
	

}*/
int main(){
	int n;

 c[1]=1;
 c[2]=2;
 for(int i=3;i<100;i++)
	 c[i]=c[i-1]+c[i-2];

	while(cin >>n){


cout <<c[n];



	}
	return 0;
	system("pause");
}

 

登录查看完整内容


登录后发布评论

7 条评论
08193003
2024年3月2日 17:02

有什么问题吗/

 

赞(0)

snake : 回复 08193003: 把int改为long long

2024年3月4日 13:23

孙某人 : 回复 08193003: 我以前用的递归不对,这样没用就通过了,学长的意思可能是没用long long,不过题目中不让用递归

2024年3月5日 14:44
08193003
2024年3月2日 17:02

#include<bits/stdc++.h>
using namespace std;
int f(int n){
    if(n<=1) return n;
    
//    int[] dp=new int[n+1];java中定义数组 
    int* dp=new int[n+1];
    
    dp[0]=0;
    dp[1]=1;
    dp[2]=2;
    
    for(int i=3;i<=n;i++){
        dp[i]=dp[i-1]+dp[i-2];
    }
    return dp[n];
}

int main()
{
    int n;
    cin>>n;
    cout<<f(n);
}我的这个为什么不行

赞(0)

snake : 回复 08193003: 累加到90项超出int的范围了

2024年3月4日 13:22

08193003 : 回复 snake: ok 谢谢

2024年3月4日 13:36

孙某人 : 回复 snake: 问一下大佬,用递归是不是得用long long不用递归就用int就行

2024年3月5日 13:55