SGU 105 Div 3
找规律
1 | 12 | 123 | 1234 | 12345 | 123456 | 1234567 | 12345678 | 123456789 |
Y | Y | Y | Y | Y | Y |
如上表规律。每三个,第一个不是,后两个是。
所以 答案=N 包含的完整周期(不包含N) * 2 + N所在周期的位置-1
就是
(n-1)/3*2+(n%3==0?3:n%3)-1 更简洁的表示方式: n/3*2+(n%3)/2
完整代码如下
SGU 105 Div 3
/************************************************************************* > File Name: sgu105.cpp > Author: Shine > Created Time: 2013-05-06 上午 11:57:12 > QuestionType: 规律 > Way: 找规律 > Submit: 1WA(表达不正确,没验证) 1AC > Gain: (int)形式的* / 运算, 结果与先后顺序有关 > Experience: 提交不要随意,嗯,至少验证验证。 ************************************************************************/ #include <cstdio> int main() { int n; while (scanf("%d", &n)!=EOF) { printf("%d\n", (n-1)/3*2+(n%3==0?3:n%3)-1); } return 0; }
posted on 2013-05-06 12:20 ShineCheng 阅读(148) 评论(0) 编辑 收藏 举报