11 条题解

  • 2
    @ 2023-8-29 23:35:24
    #include
    int main()
    {
    	int i=0,a,b,f1=1,f2=1;
    	scanf("%d%d",&a,&b);
    	for(;;)
    	{
    		f1=f1+f2;
    		if(f1>=a&&f1<=b)
    		i++;
    		f2=f1+f2;
    		if(f2>=a&&f2<=b)
    		i++;
    		if(f1>b||f2>b)
    		break;
    	}
    	printf("%d",i);
    	return 0;
    }
    
    • 1
      @ 2023-10-3 10:57:42
      #include <stdio.h>
      int m[1000005];
      int main()
      {
      	int a,b;
          int c=0;
          scanf("%d %d ",&a,&b);
          m[1]=1;
          m[2]=1;
          for(int i=3;;i++)
          {
              m[i]=m[i-1]+m[i-2];
              if(m[1]==a||m[2]==a)
              {
                  ++c;
                  c*=2;
              }
              if(a<=m[i]&&m[i]<=b)
              {
                  c++;
              }
              if(m[i]>b)
              {
                  break;
              }
      
          }
          printf("%d",c);
          return 0;
      }
      
      
      • 1
        @ 2023-8-23 16:25:41

        空间换时间,提前导出一个斐波那契数列数组就好。

        #include <cstdio>
        
        int Fibo[31] = {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269};
        //数据范围在1000000以内,故导出这个范围内的斐波那契数列数组,多导出一位防止index溢出。
        
        int main(){
            int a, b, ans = 0;
            scanf("%d %d", &a, &b);
            for(int i = 0; i <= 30; i++){
                if((a <= Fibo[i])&&(Fibo[i] <= b)){
                    ans++;
                }
            }
            printf("%d", ans);
        }
        
        • 0
          @ 2025-9-12 23:04:06
          import Data.List (unfoldr)
          
          fibonacci :: [Integer]
          fibonacci = 1 : 1 : zipWith (+) fibonacci (tail fibonacci)
          
          countInRange :: Integer -> Integer -> Int
          countInRange a b = length $ takeWhile (<= b) $ dropWhile (< a) fibonacci
          
          main :: IO ()
          main = do
              [a, b] <- fmap (map read . words) getLine
              print $ countInRange a b
          

          依旧函数大手子

          • 0
            @ 2024-11-8 15:35:12

            #include<iostream> using namespace std; int cun[1000]; int cnt; void feibo() { cun[1]=1,cun[2]=1; for(int i=3;i<1000;i++){ cun[i]=cun[i-1]+cun[i-2]; } }

            int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int a,b; cin >> a >> b ; feibo(); for(int i=1;i<1000;i++){ if(cun[i]>b) break; if(cun[i]>=a && cun[i]<=b) cnt++; } cout << cnt; return 0; }

            • 0
              @ 2024-10-12 16:25:41

              #include<stdio.h>

              int main() { int a,b,c=0; scanf("%d %d",&a,&b); inti=1,j=0,k=1,x=1; while(i>0){ if(i<=1){ j=i; }else{ j=k+x; k=x; x=j; } if(j>=a&&j<=b){ c++; }else if(j>b){ break; } i++; } printf("%d",c);

              return 0;

              }

              • 0
                @ 2024-10-2 14:57:17
                #include<stdio.h>
                int fibonacci(int n){
                    if(n==1||n==2){
                        return 1;
                    }
                        else{
                            return fibonacci(n-1)+fibonacci(n-2);
                        
                    }
                }
                int fibonacciss(int a, int b) {
                    int n = 1;
                    int count = 0;
                    while (1) {
                        int f = fibonacci(n);
                        if (f > b) {
                            break;
                        }
                        if (a <= f && f <= b) {
                            count++;
                        }
                        n++;
                    }
                    return count;
                }
                int main(){
                    int a,b;
                    scanf("%d %d",&a,&b);
                    int result=fibonacciss(a,b);
                    printf("%d",result);
                }
                
                
                • 0
                  @ 2024-4-24 22:29:10
                  #include <stdio.h>
                  int main()
                  {
                      int a=1,b=1,c=2;
                      int m,n,i=0,w;
                      scanf("%d%d",&m,&n);
                      if(a>=m)i++;
                      if(b>=m)i++;
                      for(w=1;w<=1000;w++)
                      {
                          c=a+b;
                  
                          if(c>n)break;
                          else if(c>=m)i++;
                          
                          a=b;
                          b=c;
                          
                      }
                      printf("%d",i);
                      return 0;
                  }//
                  
                  • 0
                    @ 2024-1-11 22:40:10
                    #include<stdio.h>
                    int main(){
                    	int a,b,sum=0;
                    	long long int x[30];
                    	scanf("%d %d",&a,&b);
                        x[0]=1;x[1]=1;
                        for(int i=2;i<30;i++){
                        	x[i]=x[i-1]+x[i-2];
                    	}
                    	for(int i=0;i<30;i++){
                    		if(x[i]>=a&&x[i]<=b) sum++;
                    	}
                    	printf("%d",sum);
                    	return 0;
                    } 
                    
                    • 0
                      @ 2023-10-8 19:46:38

                      #include <stdio.h> int main() { int a,b; int i,cont=0; scanf("%d %d",&a,&b); int e[100]={1,1}; for(i=2;i<100;i++) { e[i]=e[i-1]+e[i-2]; } for(i=0;i<100;i++) { if(e[i]>=a&&e[i]<=b) { cont++; }

                      }
                      printf("%d",cont);
                      return 0;
                      

                      }

                      • 0
                        @ 2023-8-23 16:37:46
                        #include<stdio.h>
                        int main(){
                            int a,b,a1,a2;
                            a1=0;
                            a2=1;
                            scanf("%d %d",&a,&b);
                            int f=0,i=0;
                                 while(f<=b){
                                      f=a1+a2;
                                      int t=a2;
                                      a2=f;
                                      a1=t;
                                     if(f>=a&&f<=b)
                        			{
                        			  i++;
                        			}
                                 }
                                 if(a==1||b==1){
                                 	i++;
                        		 }
                                      printf("%d",i);
                            return 0;
                        }
                        
                        • 1

                        信息

                        ID
                        48
                        时间
                        1000ms
                        内存
                        128MiB
                        难度
                        7
                        标签
                        递交数
                        3639
                        已通过
                        883
                        上传者