C语言每日一练---Day(14)

本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。

今日练习题关键字:统计每个月兔子的总数 数列的和

在这里插入图片描述

博主csdn个人主页:小小unicorn
⏩专栏分类:C语言天天练
代码仓库:小小unicorn的代码仓库
关注我带你学习编程知识

Day1

  • 题目一:
    • 题目描述:
    • 解题思路:
    • 代码实现:
    • 结果情况:
  • 题目二:
    • 题目描述:
    • 解题思路:
    • 代码实现:
    • 结果情况:
  • 总结:

题目一:

题目描述:

题目来源:统计每个兔子的总数
有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。

例子:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。
一月的时候有一只兔子,假如兔子都不死,问第n个月的兔子总数为多少
数据范围:输入满足 :1≤n≤31

C语言每日一练---Day(14)_第1张图片

解题思路:

1.根据分析每个月兔子的数量,实际为斐波那契数列,前2个元素为1,从第3个元素开始,为前两个元素的和。 3月份:1个兔子a
4月份:1个兔子a
5月份:1个兔子a+生的1个兔子b=2个兔子a、b
6月份:1个兔子a+生的1个兔子b+a又生的1个兔子c=3个兔子a、b、c
7月份:1个兔子a+生的1个兔子b+a又生的1个兔子c+a又生的1个兔子d+b生的1个兔子bb=5个兔子
8月份:…8
9月份:…13
10月份:…21
11月份:…34
2.输入的月份对应斐波那契数列的值

代码实现:

#include

int main() 
{

    int arr[32];
    int month;
    arr[1] = 1;
    arr[2] = 1;
    for (int i = 3; i < 32; i++) 
    {
        arr[i] = arr[i - 1] + arr[i - 2];
    }
    scanf("%d", &month);
    printf("%d", arr[month]);

    return 0;
}

结果情况:

在这里插入图片描述
符合题目要求,问题得到解决。

题目二:

题目描述:

数列的定义如下:数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和

输入描述:
输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。
输出描述:
对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。

C语言每日一练---Day(14)_第2张图片

解题思路:

用循环遍历即可轻松实现。

代码实现:

#include 
#include 

int main() 
{
    double n = 0.00;
    int m = 0;

    while (~scanf("%lf %d", &n, &m)) 
    {
        double sum = 0.00;//这里不能用float,只能用double
        for (int i = 0; i < m; i++) 
        { //控制m次
            sum += n;
            n = sqrt(n);
        }
        printf("%.2lf\n", sum);
    }

    return 0;
}

结果情况:

在这里插入图片描述
符合题目要求,问题得到解决。

总结:

文章到这里就要告一段落了,有更好的想法或问题,欢迎评论区留言。
希望今天的练习能对您有所收获,咱们下期见!

你可能感兴趣的:(c语言天天练,c语言,C语言每日一练)