疑问
- PAT里面声明一个数组,如果自己不赋予初值,那么它自己不会给你赋予初值的?如果用没有赋值的数组元素会报数组越界?
代码
#include "bits/stdc++.h"
using namespace std;
const int maxn = 1e5+1;
int prime[maxn],pNum=0;
int cnt = 0;
int n;
bool p[maxn] = {0};
void Find_Prime(){
for(int i=2;i<=n;i++){
if(p[i] == false){
prime[++pNum] = i;
for(int j=i+i;j<=n;j += i){
p[j] = true;
}
}
}
}
int main(){
scanf("%d",&n);
Find_Prime();
for(int i=pNum;i>1;i--){
if(prime[i]-prime[i-1] == 2){
cnt++;
}
}
printf("%d",cnt);
return 0;
}
反思
- 首先没有理解题意中
N
的意思;