GDUT专题学习4- B - Fedya and Maths

文章介绍了一道编程题,要求计算(1^n+2^n+3^n+4^n)mod5的结果,对于非常大的n值。通过观察发现,当n为4的倍数时结果为4,其他情况为0。解决方案是只考虑n的最后两位,判断其是否为4的倍数来得出答案。
摘要由CSDN通过智能技术生成

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^nmod 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

InputcopyOutputcopy
4
4

Sample 2

InputcopyOutputcopy
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^nmod 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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值