10 solutions

  • 5
    @ 2023-9-15 22:13:30

    不会TLE,@上面的兄弟,你可以看我的:

    using namespace std;
    int main(){
    		int a;
    		cin>>a;
    		int x[100];
    		x[1]=x[2]=1;
    		for(int i=3;i<=a;i++)
    			x[i]=x[i-1]+x[i-2];
    		cout<<x[a]<<endl;
    	return 0;
    }
    
    
    • 4
      @ 2023-9-19 19:54:03
      #include <bits/stdc++.h>
      using namespace std;
      int fibonacci(int k){
      	if (k == 1 || k == 2){
      		return 1;
      	}else{
      		return fibonacci(k - 1) + fibonacci(k - 2);
      	}
      }
      int main(int argc, char **argv){
      	int k,f[50] = {1,1};
      	cin >> k;
      	for (int i = 2;i < k;i++){
      		f[i] = f[i - 1] + f[i - 2];
      	}
      	cout << f[k - 1];
      	return 0;
      }
      
      • 3
        @ 2023-10-28 17:00:54
        #include<iostream>
        #include<cstdio>
        using namespace std;
        int main()
        {
            int a,b,c,k;
            scanf("%d",&k);
            a=1;b=1;
            for(int i=3;i<=k;++i)
            {
                c=a+b,a=b,b=c;
            }
            printf("%d\n",b);
            return 0;
        }
        
        • 2
          @ 2024-1-27 10:47:43

          两种方法: ①,常规方法

          #include<iostream>
          #include<iomanip>
          using namespace std;
          int a1=1,a2=1,k;
          int main(){
          	cin>>k;
          	if(k==1||k==2) cout<<1;
          	else{
          		int sum;
          		for(int i=0;i<k-2;i++){
          			sum=(a1+a2);
          			a1=a2;
          			a2=sum;
          		}
          		cout<<a2<<"\n";
          	}	
          	return 0;
          }
          

          ②,这个TLE了一个点

          #include<bits/stdc++.h>
          #define ll long long
          using namespace std;
          int k;
          ll f(int k){
          	if(k==1||k==2) return 1;
          	return f(k-1)+f(k-2);
          }
          int main(){
          	cin>>k;
          	ll s=f(k);
          	cout<<s<<"\n";
          	return 0;
          }
          
          • @ 2024-6-8 9:08:14
            #include<bits/stdc++.h>
            #define ll long long
            using namespace std;
            int k;
            ll ff[10005]={};
            ll f(int k){
            	if(k==1||k==2) return 1;
            //	if(ff[k]) return ff[k];
            //	return ff[k]=f(k-1)+f(k-2);
            	return ff[k]?ff[k]:ff[k]=f(k-1)+f(k-2);
            }
            int main(){
            	cin>>k;
            	ll s=f(k);
            	cout<<s<<"\n";
            	return 0;
            }
            

            记忆搜索可以递归搞定哦

        • 2
          @ 2023-7-15 17:28:29

          虽然说本题可以使用函数做,但是经过我几次三番的检验,会TLE一个点,下面是代码,洗完各位大佬们多多指导。 #include <bits/stdc++.h> using namespace std; int a1=1,a2=1,k; int main(){ cin>>k; if(k1||k2) cout<<1; else{ int sum; for(int i=0;i<k-2;i++){ sum=a1+a2; a1=a2,a2=sum; } cout<<a2; } return 0; }

          • 1
            @ 2025-1-19 14:35:12

            用递归会超时

            这是递归的
            #include<bits/stdc++.h>
            using namespace std;
            int k;
            int hs(int n){
            	if(n==1||n==2)return 1;
            	else return hs(n-1)+hs(n-2);
            }
            int main(){
            	cin>>k;
            	cout<<hs(k);
            	return 0;
            }
            
            
          • 1
            @ 2024-1-31 12:56:14
            #include<bits/stdc++.h>
            using namespace std;
            int a[50] = {0,1};
            
            int main () {
            	int k; cin >> k;
            	for (int i = 2; i <= k; i++) {
            		a[i] = a[i-1]+a[i-2];
            	}
            	cout << a[k];
            	return 0;
            }
            
            • 0
              @ 2025-1-19 14:39:24

              这是标准的循环做的

              #include<bits/stdc++.h>
              using namespace std;
              int k,a[1000010];
              
              int main(){
              	cin>>k;
              	a[1]=a[2]=1;
              	for(int i=3;i<=k;i++){
              		a[i]=a[i-1]+a[i-2];
              	}
              	cout<<a[k];
              	return 0;
              }
              
              
              • 0
                @ 2024-2-25 11:09:34
                #include<bits/stdc++.h>
                using namespace std;
                int F(int f){
                	long long a[47];
                	a[1]=1;a[2]=1;
                	if(f==1||f==2)
                		return 1;
                	else{
                		for(int i=3;i<=f;i++){
                			a[i]=a[i-1]+a[i-2];
                		}
                	return a[f];
                	}
                }
                int main(){
                	int n;
                	cin>>n;
                	cout<<F(n);
                	return 0;
                }
                
                • -1
                  @ 2024-9-14 19:09:17

                  #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include <fenv.h> #include #include #include #include <math.h> #include #include #include #include #include #include #include #include #include #include #include #include #include <stdio.h> #include #include <stdint.h> #include <string.h> #include <tgmath.h> #include <complex.h> #include #include #include <stdbool.h> #include #include #include #include <inttypes.h> #include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int s[114514]; s[1]=s[2]=1; for(int i=3;i<=n;i++){ s[i]=s[i-1]+s[i-2]; } cout<<s[n]<<endl; }

                  • 1

                  Information

                  ID
                  560
                  Time
                  1000ms
                  Memory
                  256MiB
                  Difficulty
                  5
                  Tags
                  # Submissions
                  250
                  Accepted
                  97
                  Uploaded By