当前位置:首页 > 语法入门 > 循环结构 > 正文
洛谷P9748小苹果(CSP2023)
658+

题目大意:每天拿走第1、4、7、……个苹果,多少天拿完n个苹果?编号为n的苹果第几天被拿走?

题目描述

小 Y 的桌子上放着 $n$ 个苹果从左到右排成一列,编号为从 $1$ 到 $n$。

小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。

每天在拿的时候,小苞都是从左侧第 $1$ 个苹果开始、每隔 $2$ 个苹果拿走 $1$ 个苹果。随后小苞会将剩下的苹果按原先的顺序重新排成一列。

小苞想知道,多少天能拿完所有的苹果,而编号为 $n$ 的苹果是在第几天被拿走的?

输入输出格式

输入格式

输入的第一行包含一个正整数 $n$,表示苹果的总数。

输出格式

输出一行包含两个正整数,两个整数之间由一个空格隔开,分别表示小苞拿走所有苹果所需的天数以及拿走编号为 $n$ 的苹果是在第几天。

输入输出样例

输入样例 #1

8

输出样例 #1

5 5

说明

**【样例 $1$ 解释】**

小苞的桌上一共放了 $8$ 个苹果。
小苞第一天拿走了编号为 $1$、$4$、$7$ 的苹果。
小苞第二天拿走了编号为 $2$、$6$ 的苹果。
小苞第三天拿走了编号为 $3$ 的苹果。
小苞第四天拿走了编号为 $5$ 的苹果。
小苞第五天拿走了编号为 $8$ 的苹果。

**【样例 $2$】**

见选手目录下的 apple/apple2.in 与 apple/apple2.ans。

**【数据范围】**

对于所有测试数据有:$1\leq n\leq 10^9$。

| 测试点 | $n\leq$ | 特殊性质 |
| :———-: | :———-: | :———-: |
| $1\sim 2$ | $10$ | 无 |
| $3\sim 5$ | $10^3$ | 无 |
| $6\sim 7$ | $10^6$ | 有 |
| $8\sim 9$ | $10^6$ | 无 |
| $10$ | $10^9$ | 无 |

特殊性质:小苞第一天就取走编号为 $n$ 的苹果。

解题思路

每次n规模减少1/3,三分复杂度不超时。

具体地说,就是每3个苹果减少一个,不足3个部分也要拿走1个,所以每天减少ceil(n/3.0),手动向上取整加上2即可。

至于第n个什么时候被拿走,只需要每次拿的时候判断最后一个是否为1、4、7……即可,即模3是否余1。

程序实现

About

坚决不Copy代码!

本文标签:,,,,,,

报歉!评论已关闭.