LightOJ 1136 Division by 3(取模)

本文探讨了一种特殊的数列,并总结出数列中哪些数可以被3整除的规律。首先利用了一个数学性质:如果一个数的各位数字之和能被3整除,则该数也能被3整除。进而通过对数列的观察,找到了确定某位置的数是否能被3整除的方法。
部署运行你感兴趣的模型镜像

一些数1, 12, 123, 1234, ..., 12345678910, ... 然后给出两个数A, B,求出第A个数和第B数之间又多少个数能够被3整除。

首先要运用到一个性质:

一个数的数字和相加能被三整除,那么这个数也能被3整除。(1)

然后可以发现:

连续三个整数并排在一起组成的数的数字和必然能被3整除。(2)

最后通过(2)总结出:

1.题目中的第3K个数,必然能被三整除。

2. 题目中的第3K + 1个数,其第2个数字到最末一个数字之和必然能被3整除,再加上第一个数字,也就是1,就不能被3整除了。

3. 题目中的第3K + 2个数,其第3个数字到最末一个数字之和必然能被3整除,再加上第一、二个数字,也就是1 + 2 = 3,也能被3整除。

总结出这些规律,编码也就不难了。

#include<iostream>

using namespace std;

int main(){
	int A, B, T;
	int caseNo = 0;
	cin >> T;
	while(T--){
		int count = 0;
		cin >> A >> B;
		count = (B - A + 1) / 3 * 2;
		if((B - A + 1) / 3 * 3 == B - A - 1){
			if(B % 3 == 0 || B % 3 == 2)
				count++;
			if((B - 1) % 3 == 0 || (B - 1) % 3 == 2)
				count++;
		}
		if((B - A + 1) / 3 * 3 == B - A){
			if(B % 3 == 0 || B % 3 == 2)
				count++;
		}
		cout << "Case " << ++caseNo << ": " << count << endl;
	}
}


您可能感兴趣的与本文相关的镜像

Langchain-Chatchat

Langchain-Chatchat

AI应用
Langchain

Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型和 Langchain 应用框架实现的开源项目,旨在构建一个可以离线部署的本地知识库问答系统。它通过检索增强生成 (RAG) 的方法,让用户能够以自然语言与本地文件、数据库或搜索引擎进行交互,并支持多种大模型和向量数据库的集成,以及提供 WebUI 和 API 服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值