初试牛客网PAT练习之数素数
2016-04-09 16:35
183 查看
正式开始练习PAT,初步选择的练习平台是牛客网(http://www.nowcoder.com/),原因是虽然自己理论学习还不错,但缺乏上手经验,想先在练习平台上实验一段时间后,在正式进驻PAT官网。
前两个练习有点仓促,没有留下代码,从第三个开始。
以上是第三道题目的我的答案,在做题的过程中先后出现了两个问题:
1)格式不对
主要原因是题目中明确要求了最后一个输出元素后不能存在空格,而我在处理时完全忽略了这个问题,所以导致了格式的不正确;
2)运行超时
其原因在于平台要求运行时间在1000ms以内,而我在最开始时处理素数的方法并不好,导致了运行超时,而后发现应该是开根号处理能够大大加快运行速度。
第一更,以后会陆续更新,希望能够在短期内获得提升。
前两个练习有点仓促,没有留下代码,从第三个开始。
#include <iostream> #include <math.h> #include <stdio.h> using namespace std; int isor(int num){ int i=0; int k=5; for(i=2;i<sqrt(num)+1;i++){ k=num%i; if(k==0){ return 0; } } return 1; } int main(){ int a,b; cin>>a>>b; int save[b]; save[0]=2; int j=1; int i=3; int is; while(j<b+1){ is=isor(i); if(is==1){ save[j]=i; j++; i++; } else i++; } j=1; for(i=a-1;i<b-1;i++){ cout<<save[i]; if(j%10!=0) cout<<" "; else cout<<endl; j++; } cout<<save[b-1]; return 0; }
以上是第三道题目的我的答案,在做题的过程中先后出现了两个问题:
1)格式不对
主要原因是题目中明确要求了最后一个输出元素后不能存在空格,而我在处理时完全忽略了这个问题,所以导致了格式的不正确;
2)运行超时
其原因在于平台要求运行时间在1000ms以内,而我在最开始时处理素数的方法并不好,导致了运行超时,而后发现应该是开根号处理能够大大加快运行速度。
第一更,以后会陆续更新,希望能够在短期内获得提升。