题目:
Fedya studies in a gymnasium. Fedya's maths hometask is to calculate the following expression:
(1n + 2n + 3n + 4n) mod 5
for given value of n. Fedya managed to complete the task. Can you? Note that given number n can be extremely large (e.g. it can exceed any integer type of your programming language).
Input
The single line contains a single integer n (0 ≤ n ≤ 10105). The number doesn't contain any leading zeroes.
Output
Print the value of the expression without leading zeros.
Sample 1
Inputcopy | Outputcopy |
---|---|
4 | 4 |
Sample 2
Inputcopy | Outputcopy |
---|---|
124356983594583453458888889 | 0 |
Note
Operation x mod y means taking remainder after division x by y.
Note to the first sample:
思路:
用一个数组来存储n的每一位,高精度求出n模4的结果,根据结果进行判断。
代码:
#include<string.h>
#include<stdio.h>
char a[100005] = { 0 };
int main()
{
//输入数字n
scanf("%s",a);
int len = strlen(a);
for (int i = 0; i < len; i++) a[i] = a[i] - '0';
int up = 0,x = 0, tmp = 0, ans = 0;
//计算n模4的结果
for (int i = 0; i < len; i++)
{
tmp = a[i] + up * 10;
up = tmp % 4;
}
x = up;
//根据n模4的结果做出判断
if(x == 0) ans = 4;
printf("%d",ans);
return 0;
}