神奇的字母序列(magic)

题目描述:

给定一个由”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;
}

保存、编译、运行