基本算法思想总结:模拟算法、递推与递归
(1)模拟算法
直到今天我算法思想才慢慢开悟。。之前都是在熟悉回忆语法和不断地模拟模拟。。解题效率极低,今天专门总结一下。
当题目很难用计算机建立枚举、贪心等算法,甚至无法建立数学模型的时候就可以用模拟法:用计算机模拟整个进程进而得到答案。
模拟题的算法一般都不太复杂,关键是所有条件都不能遗漏并要把条件分析清楚。求解模拟题一般都比较繁琐,编程前一定要预先规划好各个模块的功能和结构,以免具体编程时注意了局部而遗漏了某些重要的方面。
例题:https://www.luogu.com.cn/problem/P2669
#include<bits/stdc++.h> using namespace std; int main() { int K,sum=0,n=0,i=1; cin>>K; while(n!=K) { for(int j=1;j<=i;j++) { sum+=i; n++; if(n==K) break; } i++; } cout<<sum<<endl; return 0; }
参考答案转载https://blog.csdn.net/weixin_44336954/article/details/92408543
递推/递归明天写吧。。。明天继续贴个链接过来。。晚安。。
从0开始的练级路(八)——基本算法思想:模拟算法、递推与递归
原文:https://www.cnblogs.com/Ricardohff/p/12514697.html