2 条题解
-
0
模拟题:
- 循环模拟第n天;
- 每三个苹果为一组,一次可以在每组中取一个;最后不满三个的也为一组;
- 要想拿到最后一个苹果,则需要最后一个苹果是最后一组的第一个并且该组仅有一个苹果。即
apple_num%3=1;
#include<iostream> using namespace std; int main(){ int apple_num; cin>>apple_num; int day = 0, take_n_day = 0; bool is_take_last = false; // 循环求解可以拿多少次 while(apple_num!=0){ day++; // 是不是拿的最后一个 if(apple_num%3==1 && !is_take_last){ take_n_day = day; is_take_last = true; } // 每次拿几个 int last_group_need_one = 0; if(apple_num%3!=0){ last_group_need_one = 1; } int once_take = apple_num/3 + last_group_need_one; apple_num -= once_take; } cout<<day<<" "<<take_n_day<<endl; }
信息
- ID
- 13715
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 3
- 标签
- 递交数
- 81
- 已通过
- 34
- 上传者