六条咸鱼-大二小白菜-Day1(打印从1到最大的n 位数;斐波那契数列)

打印从1到最大的n 位数

描述

输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。

1. 用返回一个整数列表来代替打印
2. n 为正整数

示例1

输入:

1

返回值:

[1,2,3,4,5,6,7,8,9]

程序:

#include "stdio.h"
void main()
{
  int n,i;
  scanf("%d",&n);
  printf("[");
  if(n>0&&n<10)
  {
      for(i=n;i<10;i++)  
      {
          printf("%d,",i);
      }
  }
      else if(n>10&&n<100)
  {
      for(i=n;i<100;i++)  
      {
          printf("%d,",i);
      }
  }
  else if(n>100&&n<1000)
  {
      for(i=n;i<1000;i++)  
      {
          printf("%d,",i);
      }
  }
   printf("]");
}

打印结果

六条咸鱼-大二小白菜-Day1(打印从1到最大的n 位数;斐波那契数列)_第1张图片

六条咸鱼-大二小白菜-Day1(打印从1到最大的n 位数;斐波那契数列)_第2张图片

六条咸鱼-大二小白菜-Day1(打印从1到最大的n 位数;斐波那契数列)_第3张图片


斐波那契数列

描述

大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。

斐波那契数列是一个满足 fib(x)=\left\{ \begin{array}{rcl} 1 & {x=1,2}\\ fib(x-1)+fib(x-2) &{x>2}\\ \end{array} \right.fib(x)={1fib(x−1)+fib(x−2)​x=1,2x>2​ 的数列

数据范围:1\leq n\leq 391≤n≤39

要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n) ,本题也有时间复杂度 O(logn)O(logn) 的解法

输入描述:

一个正整数n

返回值描述:

输出一个正整数。

示例1

输入:

4

返回值:

3

说明:

根据斐波那契数列的定义可知,fib(1)=1,fib(2)=1,fib(3)=fib(3-1)+fib(3-2)=2,fib(4)=fib(4-1)+fib(4-2)=3,所以答案为4。      

示例2

输入:

1

返回值:

1

示例3

输入:

2

返回值:

1

程序:

#include "stdio.h"
int fib(int x);
int x,y,b;
void main()
{
 scanf("%d",&x); 
 y=fib(x);
 printf("%d",y); 
}
int fib(int x)
{
 if(x>=1&&x<=39)
 { 
     if(x==1||x==2) 
     {
         b=1;
      }
     else
     {
         b=fib(x-1)+fib(x-2);
      }
 }
 return (b);
}

打印结果

六条咸鱼-大二小白菜-Day1(打印从1到最大的n 位数;斐波那契数列)_第4张图片

六条咸鱼-大二小白菜-Day1(打印从1到最大的n 位数;斐波那契数列)_第5张图片

你可能感兴趣的:(c语言)