zoukankan      html  css  js  c++  java
  • ————————————————1004——————

          ——————内心的激动无以复加————————————尼玛终于对了。先反省一下。。程序终于写出来了,当时比赛的时候没有写这个应该是时间不够,而且就算时间够用的话,也会因为时间复杂度过高,而超时。所以究其根本原因还是因为  你会得太少  你不知道应该怎样去快速排序而导致了,那一道   游乐场超时,你不会快速求素数而导致质方数超时。   小伙子  还是缺少锻炼,应该多练练,多学一点这种必须知道的东西,还有最近把这几道题弄完之后就开始看书吧。学习一下解题的思想。嗯嗯。不多臭屁了。现在把这一道题写一下。

    Problem Description
      小明天生对数字比较敏感,3岁的时候就能背诵圆周率一百位。
    
      现在,小明慢慢长大了,但依然很喜欢数字,最近,他迷上了质数和平方数,并且自己把质数的平方命名为“质方数”。
      现在,他在研究这样一个问题:距离一个正整数N最接近的质方数是多少?
     
    
    Input
    输入数据第一行是一个正整数T(T<=20),表示有T组输入数据。
    接下来T行,每行输入一个正整数N(1<=N<=10^8)。
     
    
    Output
    对于每组数据,请输出距离N最接近的质方数,每组输出占一行。
     
    
    Sample Input
    2
    1
    10
     
    
    Sample Output
    4
    9
     

    本题如果用两个for循环  求素数的话,一定是会超时的。所以在想的奶疼的时候聪明机智的我就去百度了一下大神的博客,大神的博客讲解了如何快速求素数,详细的在外面自己去看。

    然后在将大神的判断素数改成数组储存素数的时出了问题

     1 void prime()
     2 {
     3     for(i=2,w=0;i<1000100;i++)
     4     {
     5         int q;
     6         q=0;
     7         if(i==2||i==3)
     8         {
     9             a[w++]=i*i;
    10             continue;
    11         }
    12         if(i%6!=1&&i%6!=5)
    13         {
    14             continue;
    15         }
    16         for(j=5;j*j<=i;j=j+6)
    17         {
    18             if(i%j==0||i%(j+2)==0)
    19             {
    20                 q=1;
    21                 break;;
    22             }
    23         }
    24         if(q==1)
    25             continue;
    26         a[w++]=i*i;
    27     }
    28 }

    原先写的时候是没有写20 24 25 26这几行代码的,所以出了错误。在进入到循环之后break跳出了循环然而还是把不是素数的数字当成了素数。

    现在去检验一下    两个for循环写出来的,求素数快,还是大神写的快速求素数的办法快。

    void prime()
    {
        for(i=2,w=0;i<1000100;i++)
        {
            for(j=2;j<=i;j++)
            {
                if(i%j==0)
                    a[w++]=i;
            }
        }
    }

    这是我写代码虽然空间复杂度低了一点点,但是时间复杂度却飙升。么么。

    确实还是大神比较厉害一点。

  • 相关阅读:
    linux使用jstack来找出死循环的java代码
    Dubbo的几种序列化协议
    上传新项目到GitLab
    PI Network项目,手把手教快速挖Pi币
    Oracle数据导出、导入
    如何实现表单标题两端对齐
    cookie 操作记录& vuex 中页面刷新 state 数据丢失的问题
    FCSAN存储与服务器关联映射后在服务器端如何识别操作
    修改密码报-bash: !@#***": event not found
    springboot整合logstash
  • 原文地址:https://www.cnblogs.com/A-FM/p/5008350.html
Copyright © 2011-2022 走看看