2 条题解
-
1
画几个苹果找找规律,发现可以将每三个苹果看成时一组,每天每组苹果取一个。那么问题转化成了每天的苹果总数一共可以分为多少个组。同时要考虑最后一组可能小于三个苹果,但也要取走一个。
#include using namespace std; int main() { int n; cin>>n; int day=0;//用来保存第一次取到n的天数 int i=1;//记录取了的天数 bool m=true;//标记第一次取余为1的标记 while(n>0) { if(m) {//判断n号苹果是否能第一天取走; //(由于可能后面的天数中依然可能出现n%3==1 //的情况,所以打标记,只看第一次的情况。) if(n%3==1) { day=i; m=false; } } if(n>=3&&n%3>0) {//大于等于3个时,分情况讨论,n能否被3整除取走的苹果数量不同。 //@@@@@@@@ //@@@@@@ int x=n/3+1; n=n-x; } else if(n>=3&&n%3==0) { int x=n/3; n=n-x; } else if(n<3) {//小于3时,每次只能取走一个苹果 n--; } i++;//过渡到下一天 } cout<<i-1<<" "<<day<<endl; return 0;
}
-
0
- 1
信息
- ID
- 91
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 75
- 已通过
- 26
- 上传者