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

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

题目一:

题目描述:

题目来源:统计每个兔子的总数

有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。

例子:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。

一月的时候有一只兔子,假如兔子都不死,问第n个月的兔子总数为多少

数据范围:输入满足 :1≤n≤31

解题思路:

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<stdio.h>
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位小数。

解题思路:

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

代码实现:

#include <stdio.h>
#include <math.h>
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;
}

结果情况:

符合题目要求,问题得到解决。

总结:

文章到这里就要告一段落了,有更好的想法或问题,欢迎评论区留言。

希望今天的练习能对您有所收获,咱们下期见!

相关文章
|
6月前
|
存储 人工智能 安全
C语言:选择+编程(每日一练Day15)
C语言:选择+编程(每日一练Day15)
86 2
|
6月前
|
C语言
C语言:选择+编程(每日一练Day13)
C语言:选择+编程(每日一练Day13)
62 0
|
6月前
|
测试技术 C语言
C语言每日一练Day03——移除元素
C语言每日一练Day03——移除元素
|
6月前
|
C语言
C语言每日一练——Day02:求最小公倍数(3种方法)
C语言每日一练——Day02:求最小公倍数(3种方法)
|
6月前
|
C语言
C语言每日一练——Day01:求最大公约数(三种方法)
C语言每日一练——Day01:求最大公约数(三种方法)
|
6月前
|
存储 人工智能 C语言
C语言:选择+编程(每日一练Day16)
C语言:选择+编程(每日一练Day16)
63 3
|
6月前
|
C语言
C语言:选择+编程(每日一练Day14)
C语言:选择+编程(每日一练Day14)
62 2
|
6月前
|
编译器 C语言
C语言:选择+编程(每日一练Day12)
C语言:选择+编程(每日一练Day12)
54 2
|
6月前
|
C语言
C语言:选择+编程(每日一练Day11)
C语言:选择+编程(每日一练Day11)
49 2
|
6月前
|
C语言
C语言:选择+编程(每日一练Day10)
C语言:选择+编程(每日一练Day10)
56 1