#summercspj262A. 星港回执

星港回执

星港回执

题目背景

星港调度中心有一台很旧的回执机。它接到编号 xx 后,会按一条固定规则生成最终回执编号。

这台机器使用如下函数:

$$f(x)= \begin{cases} f(f(x+11)), & x \le 100,\\ x-10, & x \ge 101. \end{cases}$$

值班员每天会收到大量查询。虽然规则看上去像"递归套递归",调度系统仍要求你快速给出每个编号的回执结果。

题目描述

给定若干个正整数 xx,请分别输出 f(x)f(x) 的值。

输入以单独一行的 00 结束,结束标记不需要处理。

输入格式

输入包含若干行,最后一行为 00。在结束标记之前,每行包含一个正整数 xx

输出格式

对每个需要查询的 xx,输出一行一个整数,表示 f(x)f(x)

【样例 1】

【样例 1 输入】

111
101
0

【样例 1 输出】

101
91

【样例 1 解释】

f(111)=11110=101f(111) = 111 - 10 = 101f(101)=10110=91f(101) = 101 - 10 = 91


【样例 2】

【样例 2 输入】

1
10
0

【样例 2 输出】

91
91

【样例 2 解释】

x100x \le 100 时不能直接套用 x10x - 10,需要不断展开 f(f(x+11))f(f(x+11))(例如 f(1)=f(f(12))=f(f(f(23)))=f(1)=f(f(12))=f(f(f(23)))=\dots),归纳可得此时 f(x)f(x) 恒为 9191


【样例 3】

见选手目录下的 Data/sample3.inData/sample3.ans

该样例满足所有询问均满足 x101x \ge 101


【样例 4】

见选手目录下的 Data/sample4.inData/sample4.ans

该样例满足所有询问均满足 x10x \le 10


【数据规模与约定】

询问数量不超过 25000002\,500\,000,且对每次询问均有 1x10000001 \le x \le 1\,000\,000

测试点编号 分数 特殊性质
1 ~ 3 30 所有询问均满足 x101x \ge 101
4 ~ 7 40 所有询问均满足 x10x \le 10
8 ~ 10 30

【大样例下载链接】

点击下载本题选手目录