NYOJ-105 九的余数

本文介绍了一道算法题目——求自然数除以九的余数。通过输入多个自然数,利用9的特性简化计算过程,实现快速求解。文章提供了完整的C语言代码示例。

九的余数

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 3
描述

现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数。

输入
第一行有一个整数m(1<=m<=8),表示有m组测试数据;
随后m行每行有一个自然数n。
输出
输出n整除九之后的余数,每次输出占一行。
样例输入
3
4
5
465456541
样例输出
4
5
4
来源
[苗栋栋]原创
上传者

苗栋栋


思路:

       利用9的特性, 每隔十个数(0-9)的余数相等, 例如 123456789 % 9 == (1+2+3+4+5+6+7+8+9) % 9;

代码:

 
#include <stdio.h>
#include <string.h>
#define N 1000010

int main()
{
	int n;
	scanf("%d", &n);
	while(n --){
		char a[N];
		scanf("%s", a);
		int length = strlen(a);
		for(int i = 0; i < length; i ++){
			a[i] -= '0';
			if(a[i] >= 9) a[i] %= 9;
			a[i+1] += a[i];
		}
		printf("%d\n", a[length - 1]);
	}

	return 0;
}                


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值