、、3、、这要命的循环

    技术2022-07-11  122

    今天下午做题目,刷到循环的题目了,不过让人难受的是,循环没有那么容易,下面是题目:

    开始直接思考的就是用一个嵌套,for里面再套一个for循环,这样就成功的把所有的数据都计算了一遍,不过这个算法的运行用次数n的n次方,于是就超时了,超时的算法都不算是好算法,于是我做了有一个改进:

    #include<iostream> using namespace std; int main() { int n, sum=0; cin >> n; int i, m = n, k; for (k = n; m > 1; m--) { k = k * (m - 1); } sum = k; while(n>1) { sum += (k / n); k = k / n; n--; } cout << sum; return 0; }

    这次的运行次数时2*n次,本以为可以达到要求,但是还是在3,4,结算点出问题了。 后来看到题解里面,有一个人用了四个数组,两个用来存数,一个用来存得到的结果。

    Processed: 0.012, SQL: 9