21xrx.com
2024-12-22 22:11:48 Sunday
登录
文章检索 我的文章 写文章
C++课后练习答案 - 标准版
2023-07-02 19:47:27 深夜i     --     --
C++ 课后练习 答案 标准版 编程语言

作为一门重要的编程语言,C++无疑是广大程序员们需要掌握的一种语言。但是,要想熟练掌握这门语言,光靠上课还是不能够完全掌握的,还需要进行课后练习。为了帮助同学们更好的掌握C++语言,我们特意整理了C++课后练习答案 - 标准版,供大家参考。

1. 实现一个函数,判断一个数是否是质数。

bool IsPrime(int n)

{

  if (n == 1 || n == 0)

    return false;

  for (int i = 2; i * i <= n; i++)

  {

    if (n % i == 0)

      return false;

  }

  return true;

}

2. 实现一个函数,判断一个数是否是回文数。

bool IsPalindrome(int n)

{

  if (n < 0 || (n % 10 == 0 && n != 0))

    return false;

  int revert_num = 0;

  while (n > revert_num)

  {

    revert_num = revert_num * 10 + n % 10;

    n /= 10;

  }

  return n == revert_num || n == revert_num / 10;

}

3. 实现一个函数,计算一个数的平方根。

double Sqrt(double n)

{

  if (n < 0)

    return -1;

  double left = 0;

  double right = n;

  while (abs(left - right) > 1e-6)

  {

    double mid = (left + right) / 2;

    if (mid * mid <= n)

      left = mid;

    else

      right = mid;

  }

  return left;

}

4. 实现一个函数,找出一个整数数组中,出现次数最多的元素。

int FindMajorityElement(vector & nums)

{

  int majority = nums[0];

  int count = 1;

  for (int i = 1; i < nums.size(); i++)

  {

    if (nums[i] == majority)

      count++;

    else

      count--;

    if (count == 0)

    {

      majority = nums[i];

      count = 1;

    }

  }

  return majority;

}

5. 实现一个函数,找出一个整数数组中,所有出现次数大于等于n/2的元素。

vector FindMajorityElements(vector & nums)

{

  int n = nums.size();

  int majority = nums[0];

  int count = 1;

  for (int i = 1; i < n; i++)

  {

    if (nums[i] == majority)

      count++;

    else

      count--;

    if (count == 0)

    {

      majority = nums[i];

      count = 1;

    }

  }

  count = 0;

  for (int i = 0; i < n; i++)

  {

    if (nums[i] == majority)

      count++;

  }

  if (count < n / 2)

    return {};

  vector res;

  for (int i = 0; i < n; i++)

  {

    if (nums[i] == majority)

      res.push_back(nums[i]);

  }

  return res;

}

以上就是C++课后练习答案 - 标准版的内容。同学们可以根据这些答案,进行自主练习和查漏补缺,提高自己的C++编程水平。希望大家都能够在编程之路上有所收获!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复