问题 B: Divisible by 3
时间限制: 1 Sec 内存限制: 128 MB
提交: 291 解决: 86
[提交][状态][讨论版]
题目描述
Let’s consider a sequence 1, 12, 123, 1234, 12345, 123456, 1234567, 12345678, 123456789, 12345678910, 1234567891011, ….
Write a program that determines how many elements of this sequence among first n are divisible by three.
输入
One positive integer n (1 ≤ n ≤ 231 - 1).
输出
You need to print one number you’ve found.
样例输入
4
样例输出
2
提示
来源: http://125.221.232.253/JudgeOnline/problem.php?cid=1204&pid=1
//循环节 1 0 0
#include <cstdio>
int main(void)
{
int N;
while(~scanf("%d",&N))
printf("%d\n",(N/3)*2+(N%3?N%3-1:0));
return 0;
}
本程序解决一道算法题,题目要求计算序列1,12,123,...,1234567891011中前n项能被3整除的数量。通过分析循环节特性,给出简洁高效的解法。

488

被折叠的 条评论
为什么被折叠?



