Hdu 1163 Eddy's digital Roots + NYOJ-485 A*B Problem(九余数定理)

参考自:Hdu-1163 Eddy's digital Roots(九余数定理) - 飘过的小牛 - 博客频道 - CSDN.NET

九余数定理:一个数的每位数字之和等于这个数对9取余,如果等于0就是9

Hdu 1163 Eddy's digital Roots

题意:给定一个正整数,根据一定的规则求出该数的“数根”,其规则如下:

例如给定 数字 24,将24的各个位上的数字“分离”,分别得到数字 2 和 4,而2+4=6;

 因为 6 < 10,所以就认为6是数字24的“数根”;

而对于数字 39 , 将39的各个位上的数字“分离”,分别得到数字 3 和 9,而3+9=12,且12>10;

所以依据规则再对 12 进行相应的运算,最后得到数字3,而3<10,所以就认为3是数字39的“数根”。

 通过运算可以发现任何一个数的“数根”都是一个取值范围在 1 ~ 9之间的正整数,

且任何一个正整数都只有唯一的一个“数根”与其相对应。

题目要求数字 n^n 的“数根”

#include <cstdio>

int main ()
{
	int n;
	while (scanf("%d",&n),n)
	{
		int tmp=n;
		for (int i=2;i<=n;i++)
			tmp=tmp*n%9;
		printf("%d\n",tmp==0?9:tmp);
	}
	return 0;
}


NYOJ-485 A*B Problem

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=485

#include <cstdio>

int main ()
{
	int T;
	scanf("%d",&T);
	while (T--)
	{
		long long a,b,tmp;
		scanf("%lld%lld",&a,&b);
		if (a==0 || b==0)
		{
			printf("0\n");
			continue;
		}
		tmp=(a%9)*(b%9)%9;
		printf("%lld\n",tmp==0?9:tmp);
	}
	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值