CF-44H普及+/提高
电话号码
⏱ 2.0s💾 256MB
📋 题目描述
给你一个电话号码的各位数字 ,根据给定的规则生成一个号码 ( 与 不能完全相同) 。生成的规则如下:第一个数字 是从 中任选的一个, 当 时, 或者 ,请你计算可以生成多少个新的号码。
📥 输入格式
仅有一行,是一个由 到 的数字组成的非空序列,长度不超过 ,表示给定的电话号码 。
📤 输出格式
仅有一个整数,表示按照给定的规则可以生成的电话号码的个数。
📝 样例 1
输入
12345
输出
48
📝 样例 2
输入
09
输出
15
📚 来源
Problem:CF-44H
Contest:School Team Contest 2 (Winter Computer School 2010/11)
💡 题目讲解
1
理解题意
看一个最简单的例子:原号码 "09"(只有两位:)。
规则 ①: 随便选,0~9 都行。比如选 。
规则 ②: 怎么算?把 和 加起来除以 2:
5.5 不是整数!可以向下取整 ,也可以向上取整 。
→ 时, 可以是 5 或 6——分叉了! 🌿
再试试 :, 是整数。两种取整结果都是 6 → 不分叉。
💡 规律: 是奇数 → 分叉(差 1);偶数 → 不分叉。
1 / 6