本文主要是介绍历年CSP-J复赛真题解析 | 2023年T1小苹果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
学习C++从娃娃抓起!记录下CSP-J备考学习过程中的题目,记录每一个瞬间。
附上汇总贴:历年CSP-J复赛真题解析 | 汇总_热爱编程的通信人的博客-CSDN博客
【题目描述】
小Y的桌子上放着n个苹果从左到右排成一列,编号为从1到n。
小苞是小Y的好朋友,每天她都会从中拿走一些苹果。
每天在拿的时候,小苞都是从左侧第1个苹果开始、每隔2个苹果拿走1个苹果。随后小苞会将剩下的苹果按原先的顺序重新排成一列。
小苞想知道,多少天能拿完所有的苹果,而编号为n的苹果是在第几天被拿走的?
【输入】
输入的第一行包含一个正整数n,表示苹果的总数。
【输出】
输出一行包含两个正整数,两个整数之间由一个空格隔开,分别表示小苞拿走所有苹果所需的天数以及拿走编号为n的苹果是在第几天。
【输入样例】
8
【输出样例】
5 5
【代码详解】
#include <bits/stdc++.h>
#include <cmath>
using namespace std;
int n, take = 0, cnt = 1, ans2 = 0;
int main()
{cin >> n;while (n>0) {if (!ans2 && n%3==1) {ans2 = cnt;}take = ceil(1.0*n/3);// cout << "n take " << n << " " << take << endl;n = n - take;cnt++;}cout << cnt-1 << " " << ans2 << endl;return 0;
}
【运行结果】
8
5 5
这篇关于历年CSP-J复赛真题解析 | 2023年T1小苹果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!