01) 有具体的问题
02) 有设计解决这个问题的具体流程
03)有评价处理流程的可量化指标
算法的分类
1)分类当然非常多
2)对于新手学习特别重要的一个分类
1明确知道怎么算的流程
2明确知道怎么尝试的流程
题目一:给定一个参数N,返回:1!+2!+3!+4!++++N的结果
解决这个问题的具体流程
A的设计的流程是: B的设计的流程是:
1!1; 1!1
2!12; 2!=1!2
3!123 3! =2!3
4! 1234 4!=3!*4
N!
具体代码:
#include <iostream>
using namespace std;
int factorial(int N)
{
long ans = 1;
for (int i = 1; i <= N; i++)
{
ans *= i;
}
return ans;
}
void printA(int x)
{
int s = 0;
for (int i = 1; i <= x; i++)
{
s += factorial(i);
}
cout << s << endl;
}
void printB(int N)
{
int ans = 0;
int cur = 1;
for (int i = 1; i <= N; ++i)
{
cur =cur* i;
ans += cur;
}
cout << ans << endl;
}
void test01()
{
int num1;
cin >> num1;
printA(num1);
printB(num1);
}
int main()
{
test01();
}