C语言实践练习题----day13

题目一

题目描述

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

思路:可查阅斐波那契数列的原理,此月的数量等于前俩个月数量的总和

#include <stdio.h>
int count(int n)
{
    if(n==1||n==2)
    return 1;
    return count(n-1)+count(n-2);
}


int main() {
    int n=0;
    scanf("%d",&n);
    int cou;
    if(n>0){
        cou=count(n);
    }
    printf("%d",cou);
    return 0;
}

题目二

题目描述

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

思路:多组输入,可以用scanf(“%d”,&a)!=EOF这个作为while的条件
然后循环sum累加

#include <stdio.h>
#include<math.h>
int main() {
    int n, m;
    while (scanf("%d %d", &n, &m) != EOF) { 
        double sum=0.0;
        double next=n;
        for(int i=0;i<m;i++)
        {
            sum+=next;
            next=sqrt(next);
        }
        printf("%.2f\n", sum);
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值