思路简析
解法一:
这个解法有点臃肿,用了两个循环。这其中我出现了一个关于while(n–)的误解:
while(n–)和while(–n)_while(–n)是什么意思-CSDN博客
解法二:
更加简洁的解法。
解法代码
解法一
#include<iostream>
using namespace std;
int main() {
int N;
cin >> N;
int S = 0;
int partSum = 1;
for (int i = N; i > 0; i--) {
int count = i;
while (count) { //计算i!
partSum *= count;
count--;
}
S += partSum;
partSum = 1;
}
cout << S;
return 0;
}
解法二
#include<iostream>
using namespace std;
int main() {
int N;
cin >> N;
int S = 0;
int partSum = 1;
for (int i = N; i > 0; i--) {
int count = i;
while (count) { //计算i!
partSum *= count;
count--;
}
S += partSum;
partSum = 1;
}
cout << S;
return 0;
}