牛客网--被3整除
題目描述
小Q得到一個(gè)神奇的數(shù)列: 1, 12, 123,...12345678910,1234567891011...。
并且小Q對(duì)于能否被3整除這個(gè)性質(zhì)很感興趣。
小Q現(xiàn)在希望你能幫他計(jì)算一下從數(shù)列的第l個(gè)到第r個(gè)(包含端點(diǎn))有多少個(gè)數(shù)可以被3整除。
輸入描述:
輸入包括兩個(gè)整數(shù)l和r(1 <= l <= r <= 1e9), 表示要求解的區(qū)間兩端。輸出描述:
輸出一個(gè)整數(shù), 表示區(qū)間內(nèi)能被3整除的數(shù)字個(gè)數(shù)。示例1
輸入
復(fù)制
2 5輸出
復(fù)制
3說(shuō)明
12, 123, 1234, 12345... 其中12, 123, 12345能被3整除。這道題自然不可以用直接%3的方式,那肯定存不下
將該數(shù)的各位上的數(shù)加起來(lái),看能不能被3整除,即便用這種方法,因?yàn)榘咐龜?shù)字很大,用int類型仍然無(wú)法完全通過,需要將變量定義為long long類型。
代碼:
#include<stdio.h>
int main()
{
?? ?long long l,r;
?? ?long long sum=0,i,t,j;
?? ?scanf("%lld%lld",&l,&r);
?? ?for(i=l;i<=r;i++)
?? ?{
?? ??? ?t=0;
?? ??? ?for(j=1;j<=i;j++)
?? ??? ?{
?? ??? ??? ?t+=j;
?? ??? ?}
?? ??? ?if(t%3==0)
?? ??? ?{
?? ??? ??? ?sum+=1;
?? ??? ?}
?? ?}
?? ?printf("%lld\n",sum);
}
總結(jié)
- 上一篇: 【剑指offer】面试题36:二叉搜索树
- 下一篇: Java Web实现信息管理