牛客网--被3整除
題目描述
小Q得到一個神奇的數列: 1, 12, 123,...12345678910,1234567891011...。
并且小Q對于能否被3整除這個性質很感興趣。
小Q現在希望你能幫他計算一下從數列的第l個到第r個(包含端點)有多少個數可以被3整除。
輸入描述:
輸入包括兩個整數l和r(1 <= l <= r <= 1e9), 表示要求解的區間兩端。輸出描述:
輸出一個整數, 表示區間內能被3整除的數字個數。示例1
輸入
復制
2 5輸出
復制
3說明
12, 123, 1234, 12345... 其中12, 123, 12345能被3整除。這道題自然不可以用直接%3的方式,那肯定存不下
將該數的各位上的數加起來,看能不能被3整除,即便用這種方法,因為案例數字很大,用int類型仍然無法完全通過,需要將變量定義為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);
}
總結
- 上一篇: 【剑指offer】面试题36:二叉搜索树
- 下一篇: Leetcode--75. 颜色分类