斐波那契数列

因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34…
即开始有一对儿兔子,然后3个月后兔子长大了,这对兔子会生一对儿兔子,之后的每个月这对儿兔子又生一对儿,假设兔子不会死亡,那么 N 个月后有多少对儿兔子。

理解

数列:1、1、2、3、5、8、13、21、34…
找到数列的规律之后,我们发现,3号数是1号+2号,6号数是4号+5号,即该数前两个数的和。

解题

#include <stdio.h>
int main(){
    int f1=1,f2=1,f3;
    //将第1、2个月的数先赋值,作为计算基底
    printf("%12d\t%12d\t",f1,f2);
    //由于已经赋值了,所以就先输出
    for(int i=3;i<41;i++){
        f3=f1+f2;
        printf("%12d\t",f3);
        //利用循环输出第三个月的数,也就是前两个月的和
        if(i%4==0){
            printf("\n");
        }
        //判断换行
        f1=f2;
        f2=f3;
        //将用于相加的两个数向前推移
    }
}

运行结果

素数判断-1

输入一个大于3的数,并判断其是否为素数

思路

条件:大于3,素数
素数:不能被2~(n-1)中的任何一个整数整除

解题

#include <stdio.h>
int main(){
    int n,i;
    printf("请随便输入一个数:\n");
    scanf("%d",&n);
    //获取输入的数字
    for(i=2;i<=(n-1);i++){
        if(n%i==0){
            break;
        }
    }
    //利用循环判断是否能被整除
    if(i<n){
        printf("输入的%d不是素数!\n",n);
    }else{
        printf("输入的%d是一个素数!\n",n);
    }
    //如果在循环的时候跳出,那么 i 一定是比 n 小的,所以就不是素数,反之则为素数
}

素数判断-2

在100~200中,输出所有的素数

思路

上面的题目是输入一个数,下面我们只需要将输入的数改成遍历100~200中的所有数即可。

解题

#include <stdio.h>
int main(){
    int n,i;
    for(n=100;n<=200;n++){
    //建立循环100~200的遍历循环
        for(i=2;i<=(n-1);i++){
            if(n%i==0){
                break;
            }
        }
        //利用循环判断是否能被整除
        if(i<n){
            continue;
            //如果不是素数,则跳过该循环
        }else{
            printf("%d是一个素数!\n",n);
        }
    }
    //如果在循环的时候跳出,那么 i 一定是比 n 小的,所以就不是素数,反之则为素数
    return 0;
}

输出结果

尾巴

这是我的个人学习笔记,主要是应付考研复习使用,充斥着一些吐槽和个人观点,并不严谨,欢迎大家参考、指正。