列表

详情


NC53677. 「金」初心如金

描述

帕秋莉掌握了一种金属性魔法

就在她掌握这种魔法的一瞬间,魔导书中飞出了一个虚影

“如果你想继续接受我的传承,请完成我给你的试炼……”

帕秋莉毫不犹豫地接受了试炼,却发现她并不会试炼的内容,于是请你来帮助她

试炼的内容如下:

每次给出一个奇数,判断其是否是质数,如果是的话,答案为1,否则答案为0

但试炼显然不会这么简单,除第一次以外,后来给出的所有数字均不是真正的数据,而是数据与lastans(上一次询问的答案,初始值为0)的异或值

如第一次给出奇数11,是质数,答案为1,下一次的奇数本该是13,但由于需要异或上一次的答案(1),因此给出的数据为12

由于帕秋莉还是想锻炼一下自己,所以最后一次的询问她要自己计算,就不用你帮忙输出啦!

输入描述

两行,第一行一个整数n (n>1),表示共有n 次询问
接下来的n行,每行一个数x,表示询问的数字
除第一个外,后面给出的数字均异或了上一次询问的答案

输出描述

n-1行,每行一个数字0或1,代表需要你输出的答案

示例1

输入:

4
11
12
14
21

输出:

1
1
0

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 367ms, 内存消耗: 13956K, 提交时间: 2019-12-04 09:11:16

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n,x;
    scanf("%lld%lld",&n,&x);
    for(int i=2;i<=n;i++)
        scanf("%lld",&x),printf("%lld\n",!(x&1));
    return 0;
}

C(clang 3.9) 解法, 执行用时: 390ms, 内存消耗: 2412K, 提交时间: 2020-01-07 20:35:14

#include<stdio.h>
int main()
{
	int n,x;
	int i,s,c;
	scanf("%d",&i);
	scanf("%d",&n);
	i=i-1;
	while(i--)
	{
	scanf("%d",&x);
	c=(x&1);
	printf(c?"0\n":"1\n");	
	}
	return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 430ms, 内存消耗: 13952K, 提交时间: 2020-02-25 20:10:53

#include<cstdio>
int main()
{
	long long n,x;
	scanf("%lld%lld",&n,&x);
	for(int i=2;i<=n;i++)
	scanf("%lld",&x),printf("%lld\n",!(x&1));
}

上一题