求余数
题目描述
给定一个数n,将自然数从1开始一直排列到n依次连接起来之后组成一个新数X,求X除以9的余数是多少
举个栗子:n为10,则x为12345678910,你给的答案是1
输入
多组测试数据,每组给定一个正整数n(1<=n<=109)
输出
对于每个n输出对应的余数。
样例输入
1210
样例输出
131
提示
来源
就是找规律,先把1至9都列出来,发现
(1+0)%9=1;
(1+2)%9=3;
(3+3)%9=6;
(3+7)%7=1;
……
依次列推
后来发现超时了,就再列11,12,13,14……
发现每9次一个循环,就OK了。
AC代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#include<stdio.h>
int
main()
{
int
n;
while
(~
scanf
(
"%d"
,&n))
{
int
res=0;
n=n%9;
for
(
int
i=1;i<=n;i++)
{
res=(res+i)%9;
}
printf
(
"%d\n"
,res);
}
return
0;
}
|