首页 > 试题广场 >

被3整除

[编程题]被3整除
  • 热度指数:80 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
阅小文得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011...。特别想知道是否能被3整除。
阅小文现在希望你能帮他计算一下从数列的第y个到第w个(包含端点)有多少个数可以被3整除?

输入描述:
输入包括两个整数y和w(1 <= y <= w <= 1e9), 表示要求解的区间两端。


输出描述:
输出一个整数, 表示区间内能被3整除的数字的个数。
示例1

输入

2  5

输出

3

说明

12, 123, 1234, 12345...  其中12, 123, 12345能被3整除。
这个题跟18年网易的题“被3整除”一样,可以在名企校招刷题的网易板块找到。唯一不同的是,这里输入参数中间的空格数量竟然不确定
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] params = br.readLine().split(" ");
        int l = Integer.parseInt(params[0]), r = Integer.parseInt(params[params.length - 1]);
        int count = 0;
        for(int num = l; num <= r; num++){
            long sum = ((1L + num) * num) >> 1;
            if(sum % 3 == 0) count++;
        }
        System.out.println(count);
    }
}

编辑于 2021-11-28 11:27:46 回复(0)
1 0 0 1 0 0 1 0 0 重复序列
发表于 2023-08-27 10:04:54 回复(0)
import re
a=raw_input()
y=int(re.findall(r'^\d{1,}',a)[0])
w=int(re.findall(r'\d{1,}$',a)[0])
def fun(y,w):
    count=0
    for i in range(y,w+1):
        count1=0
        for j in range (i+1):
            count1=j+count1  
        if (count1%3==0):
            count+=1
    return count
print fun(y,w)
发表于 2021-02-27 23:01:08 回复(0)