今天是我正式接触数据结构的第一天。
作为一个初学者,刚接触到伪代码时,可能也会苦恼如何将其编写为C++程序。以判断素数的IsPrime算法为例,给出相应的解决办法。
首先来看伪代码:
bool IsPrime(int n)
{
int limit;
if ( n <= 1 ) return false;
if ( n == 2 ) return true;
if ( n%2 == 0 ) return false;
limit = sqrt(n) + 1;
for ( int i = 3; i <= limit; i += 2 )
if ( n % i == 0 ) return false;
return true;
}
该算法的时间复杂度为O(√n),返回类型为bool类型。
将其编写成C++语言的代码如下:
#include <iostream>
#include <cmath>
using namespace std;
bool IsPrime(int n)
{
int limit;
if ( n <= 1 ) return false;
if ( n == 2 ) return true;
if ( n%2 == 0 ) return false;
limit = sqrt(n) + 1;
for ( int i = 3; i <= limit; i += 2 )
if ( n % i == 0 ) return false;
return true;
}
int main()
{
int n;
cout << "请输入一个数字n:" ;
cin >> n;
if ( IsPrime(n) )
{
cout << "n为素数" << endl;
}
else
{
cout << "n不是素数" << endl;
}
return 0;
}
以上是我作为一个初学者对该算法的编写。
算法好像挺难的,要努力。