21xrx.com
2025-03-29 10:07:56 Saturday
文章检索 我的文章 写文章
如何用C++求奇数和
2023-07-04 18:03:29 深夜i     50     0
C++ 奇数 求和

奇数是指不能被2整除的整数。想要用C++求奇数和,需要先明确奇数的概念以及如何判断一个数字是否为奇数。

在C++中,可以使用取模运算符“%”来判断一个数字是否为奇数。如果一个数除以2的余数为1,则这个数是奇数。否则,这个数是偶数。

下面给出一个简单的C++程序,用于求1到100之间的所有奇数的和:

#include <iostream>
using namespace std;
int main()
{
  int sum = 0;
  for (int i = 1; i <= 100; i += 2)
  {
    sum += i;
  }
  cout << "1到100之间的所有奇数的和为:" << sum << endl;
  return 0;
}

在这个程序中,使用了一个for循环来遍历1到100之间所有的奇数。每次循环,将当前的奇数累加到变量sum中,并最终输出求和的结果。

如果想要求别的范围内的奇数和,只需要修改for循环的起始和终止值即可。例如,如果想要求1到50之间的所有奇数的和,只需要将代码中的循环改为:

for (int i = 1; i <= 50; i += 2)
{
  sum += i;
}

除了使用循环来求奇数和之外,还可以使用递归函数来实现。下面给出一个示例代码,用于求1到n之间所有的奇数的和:

#include <iostream>
using namespace std;
int sumOfOdd(int n) {
  if (n == 1)
    return n;
  
  else if (n % 2 == 0) {
    return sumOfOdd(n - 1);
  }
  else {
    return n + sumOfOdd(n - 2);
  }
}
int main() {
  int n, sum;
  cout << "请输入一个整数n:" << endl;
  cin >> n;
  sum = sumOfOdd(n);
  cout << "1到" << n << "之间的所有奇数的和为:" << sum << endl;
  return 0;
}

这个程序中定义了一个sumOfOdd函数,用于递归地求奇数和。在函数中,首先判断n是否等于1,如果是,则已经到达了递归边界,直接返回1;否则,判断n是否为偶数,如果是,则递归求(n-1)到1之间的奇数和;如果不是,则递归求(n-2)到1之间的奇数和,并将n加上这个值作为结果返回。

总之,C++可以很方便地实现求奇数和的功能,通过循环和递归两种不同的方式,可以满足各种不同的需求。以上就是如何用C++求奇数和的简介。

  
  

评论区