B - Fedya and Maths
Fedya studies in a gymnasium. Fedya's maths hometask is to calculate the following expression:
(1^n + 2^n + 3^n + 4^n) 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:
思路
题目大意是求(1^n + 2^n + 3^n + 4^n) mod 5的结果,找规律的题目。打表发现是4的倍数结果为4,其余均为0.由于数据过大,需要用字符串或字符数组输入,判断是否为4的倍数只需要判断最后两位是否为4的倍数即可。
代码
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int num;
string s;
cin>>s;
int n=s.size();
if(n==1){
num=s[0]-'0';
if(num==4||num==8)cout<<4<<endl;
else cout<<0<<endl;
}
else{
num=s[n-1]-'0'+(s[n-2]-'0')*10;
if(num%4==0)cout<<4<<endl;
else cout<<0<<endl;
}
return 0;
}