题目来自洛谷P9748,有改动
前言
半个月前的题,一直拖到现在
看着题解不多,就写了罢
日常发癫:贴个歌词
我种下一颗种子今天是个伟大日子
摘下星星送给你 摘下月亮送给你 让太阳每天为你升起
变成蜡烛燃烧自己 只为照亮你 把我一切都献给你 只要你欢喜
你让我每个明天都变得有意义 生命虽短爱你永远 不离不弃
你是我的小呀小苹果 怎么爱你都不嫌多
红红的小脸儿温暖我的心窝 点亮我生命的火 火火火火火
你是我的小呀小苹果 就像天边最美的云朵
春天又来到了 花开满山坡 种下希望就会收获
从不觉得你讨厌 你的一切都喜欢 有你的每天都新鲜
有你阳光更灿烂 有你黑夜不黑暗 你是白云我是蓝天
春天和你漫步在盛开的花丛间 夏天夜晚陪你一起看星星眨眼
秋天黄昏与你徜徉在金色麦田 冬天雪花飞舞有你 更加温暖
你是我的小呀小苹果儿怎么爱你都不嫌多
红红的小脸儿温暖我的心窝 点亮我生命的火 火火火火火
你是我的小呀小苹果 就像天边最美的云朵
春天又来到了 花开满山坡 种下希望就会收获
你是我的小呀小苹果 怎么爱你都不嫌多
红红的小脸儿温暖我的心窝 点亮我生命的火 火火火火火
你是我的小呀小苹果
就像天边最美的云朵 春天又来到了 花开满山坡 种下希望就会收获
相信大家小时候都听过
题目
[CSP-J 2023] 小苹果
题目描述
小 Y 的桌子上放着 n n n 个苹果从左到右排成一列,编号为从 1 1 1 到 n n n。
小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。
每天在拿的时候,小苞都是从左侧第 1 1 1 个苹果开始、每隔 2 2 2 个苹果拿走 1 1 1 个苹果。随后小苞会将剩下的苹果按原先的顺序重新排成一列。
小苞想知道,多少天能拿完所有的苹果,而编号为 n n n 的苹果是在第几天被拿走的?
输入格式
输入的第一行包含一个正整数 n n n,表示苹果的总数。
输出格式
输出一行包含两个正整数,两个整数之间由一个空格隔开,分别表示小苞拿走所有苹果所需的天数以及拿走编号为 n n n 的苹果是在第几天。
样例 #1
样例输入 #1
8
样例输出 #1
5 5
提示
【样例 1 1 1 解释】
小苞的桌上一共放了
8
8
8 个苹果。
小苞第一天拿走了编号为
1
1
1、
4
4
4、
7
7
7 的苹果。
小苞第二天拿走了编号为
2
2
2、
6
6
6 的苹果。
小苞第三天拿走了编号为
3
3
3 的苹果。
小苞第四天拿走了编号为
5
5
5 的苹果。
小苞第五天拿走了编号为
8
8
8 的苹果。
【样例 2 2 2】
见选手目录下的 apple/apple2.in 与 apple/apple2.ans。
【数据范围】
对于所有测试数据有: 1 ≤ n ≤ 1 0 9 1\leq n\leq 10^9 1≤n≤109。
测试点 | n ≤ n\leq n≤ | 特殊性质 |
---|---|---|
1 ∼ 2 1\sim 2 1∼2 | 10 10 10 | 无 |
3 ∼ 5 3\sim 5 3∼5 | 1 0 3 10^3 103 | 无 |
6 ∼ 7 6\sim 7 6∼7 | 1 0 6 10^6 106 | 有 |
8 ∼ 9 8\sim 9 8∼9 | 1 0 6 10^6 106 | 无 |
10 10 10 | 1 0 9 10^9 109 | 无 |
特殊性质:小苞第一天就取走编号为 n n n 的苹果。
Code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,ans=0,t=0,m;
scanf(“%d”,&n);
while(n!=0)
{
++t;
if(!ans&&n%3==1)
{
ans=t;
}
m=(n+2)/3;
n-=m;
}
printf(“%d %d”,t,ans);
return 0;
}
给你个代码自己体会
解析:
每天取走⌈ n/3⌉个苹果
所以每次减去这部分
如果n mod 3等于一,则拿走了第n个苹果
算到没有,天数也出来了
这是第一题,难度还可以
改天发第二题(史上最水第二题)