C ++古代日历练习

时间:2017-11-26 18:43:00

标签: c++ math logic codeblocks

练习:

古代日历是60年的周期。每年的编号从1到60,分为成对,每个都有自己的颜色(绿色,红色,黄色,白色或黑色)。年份的颜色分布如下:

  • 1,2,11,12,21,22,...,51,52岁 - 绿色;
  • 3,4,13,14,23,24,...,53,54年 - 红色;
  • 5,6,15,16,25,26,...,55,56岁 - 黄色;
  • 7,8,17,18,27,28,...,57,58岁 - 白色;
  • 9,10,19,20,29,30,...,59,60岁 - 黑色。

我们知道新的60年周期始于1984年,并将于2043年结束; 1984年和1985年是绿色年份,1986年和1987年是红色年份,2043年将是黑色年份。

我们知道年 m (1800

P.S。这个练习不是用英文写的!

1 个答案:

答案 0 :(得分:0)

根据您的列表,颜色在10年的周期内旋转,然后随后的2年始终具有相同的颜色。根据该规则,您可以计算年份颜色字段中的索引。

#include <vector>
#include <string>
#include <iostream>

using namespace std;

int main()
{
    const int base_year = 1984;
    vector<string> colors = { "green", "red", "yellow", "white", "black" };

    int year;
    cout << "Insert year: ";
    cin >> year;

    int offset = year - base_year;
    int index = (offset % 10) / 2;
    if (index < 0) index += colors.size();

    cout << "year offset " << offset << " color index :" << "year color: " << colors[index] << endl;

    return 0;
}