Fedya studies in a gymnasium. Fedya's maths hometask is to calculate the following expression:
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 test(s)
input
4
output
4
input
124356983594583453458888889
output
0
快速模枚举出前面几十个就知道有规律了 0 0 0 4……
大胆的用 int 吧,超短。
【
关于溢出,因为溢出相当于 %(2^32),2^32次方又是4的倍数,所以溢出不会改变mod 4的值】【仅限Windows】
#include<stdio.h>
int main()
{ // freopen("B.txt","r",stdin);
int b;
while(scanf("%d",&b)==1)
{
if(b%4==0)
printf("4\n");
else
printf("0\n");
}
return 0;
}
如果觉得太不科学,试下下面的:判断能否mod 4,直接判断最后两位能否 mod 4即可,因为只需判断有无4这个因子就能判断能否整除(mod4==0)
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char s[1000000];
int main()
{ // freopen("B.txt","r",stdin);
int res;
while(cin>>s)
{
int len = strlen(s);
res = 0;
if(len == 1)
res = s[0]-'0';
else
{
res = s[len-2] - '0';
res = res *10 + s[len-1] - '0';
}
if(res % 4 == 0)
printf("4\n");
else
printf("0\n");
}
return 0;
}