zoukankan      html  css  js  c++  java
  • 质数和回文数

    摘要:继续练习了洛谷的循环 今天上午第一次翘了课,宅在宿舍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不能松懈。

    咱们山顶见。
  • 相关阅读:
    Android开发之Sqlite的使用
    ZOJ 3607 Lazier Salesgirl
    ZOJ 3769 Diablo III
    ZOJ 2856 Happy Life
    Ural 1119 Metro
    Ural 1146 Maximum Sum
    HDU 1003 Max Sum
    HDU 1160 FatMouse's Speed
    Ural 1073 Square Country
    Ural 1260 Nudnik Photographer
  • 原文地址:https://www.cnblogs.com/NKshen/p/13962801.html
Copyright © 2011-2022 走看看