上文链接:蓝桥杯之景点游览-较优解:交换排序(c++实现)
题目描述
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
输入
输出
样例输入
2
4
5
0
样例输出
2
4
6
该算法之我的思路
- 首先查找某年份母牛数和新增母牛数之间的关系,详细参考图片

根据规律我先计算某年份母牛数新增表,在根据母牛数新增表计算某年份母牛数表 - 我利用输入年份数时确定年份的最大值,在此基础上仅对上述的新增表和母牛数表生成一次即可完成该算法,这样节省了重复计算的时间。
算法展示
#include <iostream> using namespace std; int main() {
int n[100],j=0;//定义输入变量:n年数组,n的个数j cin>>n[j]; //输入n年数组并记录年份最大值max int max = n[j]; while(n[j]){
j++; cin>>n[j]; if(n[j]>max)max = n[j]; } int years[100],i;//定义某年份对应母牛数表 years[0]=years[1]=years[2]=years[3]=1;//初始化某年份对应母牛数表的值 //生成某年份对应新增母牛数表 for( i = 4;i<max;i++) {
years[i]=years[i-1]+years[i-3]; } //生成某年份对应母牛数表(不是新增母牛数表) for( i =1;i<max;i++) {
years[i]=years[i]+years[i-1]; } //根据年份母牛数生成表查找对应年份母牛数并输出 for( i = 0;i<j;i++) {
cout<<years[n[i]-1]<<endl; } return 0; }
讯享网
下文链接:蓝桥杯之Cylinder-数学知识+归纳(c++实现)


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/58506.html