本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。
今日练习题关键字:统计每个月兔子的总数 数列的和
💓博主csdn个人主页:小小unicorn
⏩专栏分类:C语言天天练
🚚代码仓库:小小unicorn的代码仓库🚚
🌹🌹🌹关注我带你学习编程知识
Day1
题目一:
题目描述:
有一种兔子,从出生后第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.输入的月份对应斐波那契数列的值
代码实现:
c
#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位小数。
解题思路:
用循环遍历即可轻松实现。
代码实现:
c
#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;
}
结果情况:
符合题目要求,问题得到解决。
总结:
文章到这里就要告一段落了,有更好的想法或问题,欢迎评论区留言。
希望今天的练习能对您有所收获,咱们下期见!