摘要:继续练习了洛谷的循环 今天上午第一次翘了课,宅在宿舍code(莫名有些愧疚感怎么回事? 第一个难住我的便是阶乘的高精度了,插个眼,往后来重做。

第二个值得留意的细节便是,浮点数只能和浮点运算,比如double s=1.0/int n。 然后就是p1217,回文质数的数据太大,让我除了开始考虑代码的正确性之外,还得考虑空间的压力,需要学习多种算法才能解决问题。

tag一波,除了质数的判断,就是回文数的判断

#质数

int zhishu(int a) { 
int k = 0; for (int i = 2; i < a; i++) 
{ 
if (a % i == 0) k++; 
} 
if (k == 0) return 1; 
else return 0; 
}

 

#(12.3完善一波) 

1 int zhishu(int x){
2  int p=0; if(x>=4){
3  for(int i=2;i<x-1;i++){
4  if(x%i==0) p++; 
5 }
6  }
7  if(p==0&&x!=1) return 1;
8  else return 0; 
9 }

 #质数运用———哥德巴赫

#include <iostream>
using namespace std;
int zhishu(int a) {
    int k = 0; for (int i = 2; i < a; i++)
    {
        if (a % i == 0) k++;
    }
    if (k == 0) return 1;
    else return 0;
}

int main()
{
    int n;
    cin>>n;
    int p = 0;
    while(n--) {
        cin>>p;
        int i, count = 0;
        for (i = 3; i <= p / 2; i += 2) {
            if (zhishu(i) && (zhishu(p - i)))
                count++;
        }
        cout << count << endl;
    }
}

美妙的地方在于i+=2;

让运算时间直接减少一半,这样就可以达到时间限制

#回文 

int huiwen(int n){ 
int sum=0; 
int m=n;
 while(n){
 sum=sum*10+n%10;
 n/=10;
 }
 if(sum==m)
 return 1;
 else return 0;
 }

 

爱了,全自己发明。 马上就半期了,但code不能松懈。