Parity check
Time Limit: 2000 ms
Memory Limit: 524288 KiB
Problem Description
Fascinated with the computer games, Gabriel even forgets to study. Now she needs to finish her homework, and there is an easy problem:
f(n)=
She is required to calculate f(n) mod 2 for each given n. Can you help her?
Input
Multiple test cases. Each test case is an integer n(0≤n≤) in a single line.
Output
For each test case, output the answer of f(n)mod2.
Sample Input
2
Sample Output
1
Hint
Source
“浪潮杯”山东省第八届ACM大学生程序设计竞赛(感谢青岛科技大学)
同余与模算术:(a+b)%n=(a%n+b%n); (a-b)%n=(a%n-b%n+n)%n; ab%n=(a%n)(b%n)%n.
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<stdlib.h>
#include<string.h>
#include<math.h>
using namespace std;
char s[100002];
int num[100002];
int main(){
while(scanf("%s",s)!=EOF){
int sum=0;
int len=strlen(s);
for(int i=0;i<len;i++){
sum=sum*10+s[i]-'0';
sum=sum%3;
}
if(sum==0){
cout<<0<<endl;
}else{
cout<<1<<endl;
}
}
return 0;
}
/*
long long int f(int n){
if(n==0)
return 0;
if(n==1)
return 1;
else
return f(n-1)+f(n-2);
}
int main(){
long long int n;
int i;
for(i=0;i<=20;i++){ //大表,输出斐波那契数列的前20项就会发现规律,当n是3 的倍数的时候,其斐波那契的值是2 的倍数。
printf("%d***%lld\n",i,f(i)%2);
}
return 0;
}
*/
JAVA 大数
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
//第一个注意点,多组测试数据,Java中的表示方法in.hasNextBigInteger()
while(in.hasNextBigInteger()){
BigInteger a = in.nextBigInteger();
//第二个注意点,Java大数中的'=='使用equal()函!数!
if(a.mod(BigInteger.valueOf(3)).equals(BigInteger.valueOf(0)))
System.out.println(0);
//第二个注意点,Java大数中的'=='使用equal()函!数!
else if(a.mod(BigInteger.valueOf(3)).equals(BigInteger.valueOf(1)))
System.out.println(1);
//第二个注意点,Java大数中的'=='使用equal()函!数!
else
System.out.println(1);
}
}
}