zoukankan      html  css  js  c++  java
  • 农夫养牛繁殖问题—迭代器的一个错误使用方式

    【题目】一个农夫养了一批怪牛,一对牛每月繁殖一对小牛,小牛出生后三个月时间来生长,第四个月来繁殖。

      输入牛的组数n,然后在输入n组,每组由两行组成:第一行是牛的对数,第二行是需要的成长时间;如此依次输入n组。

     1 #include<iostream>
     2 #include<vector>
     3 using namespace std;
     4 
     5 int cow(int month_num)
     6 {
     7     if (month_num<=4)
     8         return month_num+1;
     9     else
    10         return cow(month_num-1)+cow(month_num-4);
    11 }
    12 int main()
    13 {
    14     int num,num_cow,month_num=0;
    15     vector<int> num_sr;
    16     vector<int>::iterator it;
    17 
    18     cin>>num;
    19     for(int i=1;i<=2*num;++i)
    20     {
    21         cin>>num_cow;
    22         num_sr.push_back(num_cow);
    23     }
    24     for(it=num_sr.begin();it<=num_sr.end()-2;)
    25     {    
    26         //cout<<*(it)<<endl;
    27         int num_total=cow(*(++it));
    28         //cout<<*(it)<<endl;
    29         //注意此处,上面的++it对迭代器进行了+1操作,it此时已经指向了it+1
    30         cout<<(*(--it))*num_total<<endl;
    31         it=it+2;
    32     }
    33     while(1);
    34 }

      ++it相当于it=it+1;

      二、不用迭代器

     1 //使用两个vector,并且以数组形式取出迭代器里面的值
     2     vector<int> dui;
     3     vector<int> yue;
     4 
     5     int num;
     6     cin >> N;
     7     for (i = 0; i < N; i++)
     8     {
     9         cin >> temp;
    10         dui.push_back(temp);
    11         cin >> temp;
    12         yue.push_back(temp);
    13     }
    14     for (i = 0; i < N; i++)
    15     {    
    16         num =cow(yue[i]);
    17         cout << dui[i] * num << endl;
    18     }
    19     while (1);
    20 }
  • 相关阅读:
    ng-class中的if else判断
    Sass 的使用
    pre 标签的使用
    C++操作 SQL数据库 实例 代码步骤
    自己写的一个操作Mysql的简单的实例
    C++ 链接Mysql 函数介绍
    Mysql 操作命令 详解
    MFC程序开始的执行过程详述
    Java各种日期格式的获取和设置指定日期
    DM8168 OpenCV尝试与评估(编译ARM版OpenCV)
  • 原文地址:https://www.cnblogs.com/huangfuyuan/p/9556783.html
Copyright © 2011-2022 走看看