题意:给定一个数列,数列形式如下:1,12,123,1234,12345......12345678910,1234567891011.......。求第1-n项中能被3整除的项的个数。
思路:注意这样一个事实:上述数列每隔两项有一个不能被三整除。而且容易知道,不能被3整除是在n%3==1的时候.
#include <stdio.h>
int n;
int main(){
int i,j;
scanf("%d",&n);
if((n%3==0) || (n%3==1))
printf("%d\n",n/3*2);
else
printf("%d\n",(n+1)/3*2-1);
return 0;
}
本文介绍了一种针对特定数列的高效求解方法,该数列由连续递增的整数组成,目标是找出前n项中能被3整除的项的数量。文章通过观察数列规律发现了一个有趣的现象:每隔两项就有一项不能被3整除,并据此设计了一个简洁的算法。
2963

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



