题目描述:
给定一个由”L”,”C“,”R“三个字母组成的循环序列:“LCRLCRLCRLC⋯”,这个序列的循环节为“LCR”。 现在给定一个数字n,请求出这个序列的第n位是哪个字母。
输入格式: (magic.in)
单个整数:表示 n。
输出格式: (magic.out)
单个字符:表示字母序列的第n个字母。
输入输出样例
输入样例#1:
5
输出样例#1:
C
数据范围:
对于 50%的数据,1≤n≤1,000,000
对于 100%的数据,1≤n≤1,000,000,000
分析问题
发现规律,LCR LCR LCR 以一定的规律出现,仔细观察,不难发现,这个规律是每间隔3就会重新出现,所以当输入的数字,将3的整数倍忽略掉,根据余下的1、2、0 判断输出什么字母。
知识点:1.
int类型的数据范围在常见的 32 位编译器环境下,
int类型通常占据 4 个字节(32 位)的存储空间。它的取值范围是 -2,147,483,648 到 2,147,483,647。由于给定的数据范围 1 ≤ n ≤ 1,000,000,000 处于int类型的正数区间内,所以使用int类型能够完全涵盖这个范围。
建立模型
输入一个数字 n
将数字对3进行取余操作
根据余数输出字母
编写代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;//1 ≤ n ≤ 1,000,000,000 处于 `int` 类型的正数区间内
cin>>n;
int tmp;
tmp = n%3;
if(tmp==1) cout<<"L";
else if (tmp==2) cout<<"C";
else cout<<"R";
return 0;
}