迭代:重复反馈过程,通过循环结构(如for、while等)来重复执行一段代码,每次迭代都会基于上一次迭代的结果进行计算,直到满足某个终止条件为止。迭代通常用于处理可以分解为一系列重复步骤的问题
递归:反复调用它本身,直到到达一个停止的情况。递归在处理具有嵌套结构或需要多次分解的问题时非常有效。
举例:迭代计算一个整数的阶乘
#include <iostream>
using namespace std;
// 迭代计算阶乘的函数
int factorialIterative(int n) {
int result = 1;
for (int i = 2; i <= n; ++i) {
result *= i; //利用for循环一直乘+1的数,直到*它本身
}
return result; //根据for迭代的结果
}
int main() {
int number;
std::cout << "请输入一个整数来计算其阶乘:";
std::cin >> number;
if (number < 0) {
std::cout << "阶乘只对非负整数定义!" << std::endl;
} else {
int result = factorialIterative(number);
std::cout << number << "的阶乘是:" << result << std::endl;
}
return 0;
}
2.递归计算1+2……+n
#include<iostream>
#include<string>
using namespace std;
int f(int x)
//递归计算1+2……+n的级数部分和
{
if(x>0){
return x+f(x-1);//一直调用它本身,即加上(原数-1)
}
else
{
return 0;//当原数小于0不符合题意,直接返回0
}
}
int main()
{
int number;
cin>>number;
cout<<f(number)<<endl;
}