[热身题][hdoj_1061]Rightmost Digit 右值

本文探讨了如何快速计算任意整数末位数相乘后的末位数,通过简化运算流程来提高效率。
部署运行你感兴趣的模型镜像

// hdoj_1061 Rightmost Digit 右值
// 0MS	228K	253 B	GCC

#include <stdio.h>
int main(vodi)
{
	int i, ncase, m, n, t;
	scanf("%d", &ncase);
	while(ncase--)
	{
		scanf("%ld", &n);
		t = n % 10;
		m = 1;
		for(i = 0; i <= (n-1)%4; i ++)  //此处可换为 i < n%4 + 4;可解决n%4 ==0的情况
		{
			m *= t;;
		}
		printf("%d\n", m%10);
	}
	return 0;
}

/*
末位数      相乘后的末位数
1           1
2           4   8   6   2
3           9   7   1   3
4           6   4
5           5
6           6
7           9   3   1   7
8           4   2   6   8
9           1   9(由于x9是奇数,所以1不会出现)
0           0

由上面的分析可见,每个数相乘后最多有四个结果
所以对一个数n,只需做其对4取余后余数次相乘即可
但是会出现 n%4 == 0 的情况
由于x5^x5的末位数是5,x9^x9的末位数是9
所以将n%4转换为(n-1)%4
*/


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

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、付费专栏及课程。

余额充值