【模拟】种菊

题目:种菊 rqnoj122

题目描述

韵哲君为了能在NOIP中取得好成绩,便独自到某人迹罕至的深山隐居山林,养精蓄锐。有一天,她想种植一些不同颜色(一共只找到了4种不同颜色菊花的种子)的菊花以便在闲暇时间养养神(够闲适~~~)便设计了一种种植菊花的颜色顺序为:
第1朵红菊,第2朵白菊,第3朵青菊,第4朵黄菊,第5朵红菊,第6朵白菊,第7朵青菊,第8朵黄菊……依次类推。
韵哲君将这个想法说给了tttak君,tttak君听了之后认为光是按照这样一种规律太没有特色了(因为tttak是一个“标新立异”的大牛~~~),便向韵哲君提出一种新的种植方案:第1朵红菊,第2朵白菊,第3朵青菊,第4朵黄菊,第5朵白菊,第6朵青菊(每4朵为一个序列,前一序列的第2朵是后一序列的第1朵)。韵哲君寒了一阵后~~还是按照tttak的想法种起了菊花……
现在请你算出第n朵是什么颜色的菊花,并把它所在的序列排列情况输出。(白菊、黄菊、青菊、红菊分别用bai,huang,qing,hong表示)
[数据规模] n<maxlongint
From 宜昌6中(初中)

输入格式

只有一个数n,即第n朵菊花。

输出格式

输出有2行,
第1行为第n朵菊花的颜色,
第2行为所在的序列排列情况。

样例输入

样例输出

 

这类题最简单的就是打表,时间也快;也可以找循环节,这个代码简单

C++代码

 

#include<iostream>
using namespace std;

string s[17]={"","hong","bai","qing","huang","bai","qing","huang","hong","qing","huang","hong","bai","huang","hong","bai","qing"};

int main()
{
  freopen("rqn122.in","r",stdin);
  freopen("rqn122.out","w",stdout);
  int n;
  scanf("%d",&n);
  n=(n-1)%16+1;
  cout<<s[n]<<endl;
  n=(((n-1)/4)%4+1)*4-3;
  for(int i=0;i<=3;i++)cout<<s[n+i]<<' ';
  return 0;
}

 

 

 

posted @ 2012-08-17 10:15  jiangzh  阅读(239)  评论(0)    收藏  举报