仙女来送答案和题目啦!!!
#include <bits/stdc++.h>
using namespace std;
long long n=8,ans1=0,ans2=-1;
int main() {
cin>>n;
while(n!=0){
++ans1; // 记录天数 // ans1 拿走所有 n苹果 所需天数
if(ans2==-1 && n%3==1) ans2=ans1; // ans2 第几天拿走第n个苹果
n=n-ceil(1.0*n/3); // 剩下的苹果 循环同样处理
}
cout<<ans1<<" "<<ans2<<"\n";
return 0;
}
//3270
题目描述
小Y的桌子上放着 n 个苹果从左到右排成一列,编号为从 1到 n。
小苞是小 Y的好朋友,每天她都会从中拿走一些苹果。
每天在拿的时候,小苞都是从左侧第 1 个苹果开始、每隔 2 个苹果拿走 1 个苹果随后小苞会将剩下的苹果按原先的顺序重新排成一列。
小苞想知道,多少天能拿完所有的苹果,而编号为 n 的苹果是在第几天被拿走的?
输入
输入的第一行包含一个正整数 n,表示苹果的总数。
输出
输出一行包含两个正整数,两个整数之间由一个空格隔开,分别表示小苞拿走所有苹果所需的天数以及拿走编号为 n 的苹果是在第几天。
样例输入
8
样例输出
5 5
提示
小苞的桌上一共放了 8 个苹果
小苞第一天拿走了编号为 1、4、7 的苹果。小苞第二天拿走了编号为 2、6 的苹果
小苞第三天拿走了编号为 3 的苹果
小第四天拿走了编号为 5 的苹果
小第五天拿走了编号为 8 的苹果。