c语言乙级Pat素数对猜想怎么写?

Python024

c语言乙级Pat素数对猜想怎么写?,第1张

简化一下思路,不需要数组的,只需要查找素数的时候用一个变量记住上一个素数,

然后直接相减看等不等于2就可以计数了。

#include<stdio.h>

bool IsPrime(int n)

int main(void)

{

int i, n, pn = 2, count = 0

scanf("%d", &n)

for (i = 3i <= ni++)

{

if (IsPrime(i))

{

if ((i - pn) == 2) count++

pn = i

}

}

printf("%d", count)

}

bool IsPrime(int n)

{

int i

if (n <2) return false

if (n == 2) return true

if (n % 2 == 0) return false

for (i = 2(i * i) <= ni++)

if (n % i == 0) return false

return true

}

验证了一下,100以内是8,1000以内是35,10000以内是205,100000以内是1224。

结果应该是对的,1000000秒出结果,应该也不会超时。

应该是二级C语言。

关于PAT三个等级什么难度大致如下:

B(乙级):中文题,题目挺简单的,主要就考简单模拟、字符串处理、散列Hash、排序、二分、链表。

A(甲级):英文题,在乙级基础上加了数据结构,主要考线性数据结构、树、图论、最短路、深搜广搜、STL、并查集、简单DP、复杂模拟等。

T(顶级):英文题,就是ACM那些东西了。

乙级和甲级只要你把题库刷穿,90%的题能独立做出来,那么考满分八成不是问题。(一定要把题库刷完再去考)

如果你的目的是找工作,还是建议你考甲级吧,起码比乙级认可度高呀。

乙级真的是太容易了,而且要考就考100。另外英语真的不用愁,甲级顶级题目虽然都是英文,但其实很好读懂题,你不信去读读试试。

考完如果成绩好的话确实有企业联系你,但都是一些小单位或是创业公司,给你发邮件让去投简历,我也没投。(投的话应该可以直接面试)

代码如下:

#include <stdio.h>

struct Student{

       char name[11]

       char number[11]

       int grade

}

int main(){

    int n,i

    struct Student *sds

    scanf("%d",&n)

    if(n<=0)return 1

    sds = new struct Student[n]

    if(NULL== sds)return 2

    for(i = 0 i < n i++){

          scanf("%s %s %d", sds[i].name, sds[i].number, &(sds[i].grade))  

    }

    int min,max,minI,maxI

    min=max=sds[0].grade

    minI=maxI=0

    for(i = 1 i < n i++){

          if(sds[i].grade < min){

          minI=i         min= sds[i].grade

          }

          else if(sds[i].grade > max){

               maxI=i         max= sds[i].grade

          }

    }

    printf("%s %s\n", sds[maxI].name, sds[maxI].number)

    printf("%s %s\n", sds[minI].name, sds[minI].number)

    delete[] sds 

    //getchar()    getchar()

    return 0

}

/*

读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

输入格式:每个测试输入包含1个测试用例,格式为

  第1行:正整数n

  第2行:第1个学生的姓名 学号 成绩

  第3行:第2个学生的姓名 学号 成绩

  ... ... ...

  第n+1行:第n个学生的姓名 学号 成绩

其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

 

输出格式:对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格。

输入样例:

3

Joe Math990112 89

Mike CS991301 100

Mary EE990830 95

输出样例:

Mike CS991301

Joe Math990112

*/

其实上面的代码是PAT乙级的练习题,供参考。你的题目实在是太简单了。只有一句话……