题目链接:http://codeforces.com/problemset/problem/456/B
B. Fedya and Maths
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Fedya studies in a gymnasium. Fedya's maths hometask is to calculate the following expression:
(1n?+?2n?+?3n?+?4n) mod 5for 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 test(s)
input
output
input
124356983594583453458888889
output
Note
Operation x mod y means taking remainder after division x by y.
Note to the first sample:
循环节为4;
代码如下:
#include <cstdio>#include <cstring>#include <cmath>#include <iostream>#include <algorithm>using namespace std;__int64 sum;char s[1000017];int main(){ while(~scanf("%s",s)) { int len = strlen(s); int i, n; int tt = 0; if(len == 1) tt = s[0]-'0'; else { tt = s[len-1]-'0'+(s[len-2]-'0')*10; } n = tt ; if(n > 4) { n %= 4; if(n == 0) n = 4; } sum = 0; int j; for(i = 1; i <br> <br> <p></p> </algorithm></iostream></cmath></cstring></cstdio>