任务:174+12+12+12 = 210 ---文件操作 #include <iostream> using namespace std; int main(){ freopen("hhhhh.in","r",stdin); //通过cin重定向,将读取信息的流程操作为从hhhhh.in进行读取,r代表读取权限 freopen("hhhhh.out","w",stdout); //将cout输出框,改为将信息写入到hhhhh.out中,w代表写入权限(覆盖) //freopen("hhhhh.out","a",stdout);//a 追加权限 int a,b; cin>>a>>b; cout<<a+b; fclose(stdin);//断开与文件的连接 fclose(stdout);//断开与文件的连接 return 0; } #include <iostream> #include <fstream> //file stream using namespace std; int main(){ //文件读写操作 ifstream fin("hhhhh.in"); ofstream fout("hhhhh.out");(覆盖) //ofstream fout("hhhhh.out",ios::app);//追加权限 int a,b; fin>>a>>b; fout<<a+b; fin.close(); fout.close(); return 0; } 其他文件相关的操作: https://noicode.online/exclusivetomembers/wenjian.html 模拟法: 在算法设计中,通常指按照题目描述的过程,一步一步"重演"或"模仿"整个过程得到结果。 方法适用于题目中有明确规则和操作的类型,如游戏类或者状态转换类,每一步都可以被明确的定义和追踪。 关键点:准确的理解题目的含义,抽象出问题的细节(将相对复杂的题目精简),将细节转换成程序的具体步骤。 模拟法的方案通常不是最高效的解决方案,但是它通常是最好理解的方案。 输入n,输出1+2+3+4+...n的和 //模拟法 int n; cin>>n; int sum=0; for(int i=1;i<=n;i++){ sum+=i; } cout<<sum; //公式法 int n; cin>>n; cout<<(n+1)*n/2; 枚举法(穷举法、暴力破解、暴力搜索) 在解决问题时,通常按照逐一检查所有可能性,通过条件筛选,选出正确答案。 方法适用于问题规模较小的情况,因为方案的时间和空间复杂度随着问题规模的增大会急剧增加。时间复杂度通常是指数级。 限制:1、该问题必须可以列出所有可能性或者所有可能性不是很多的情况;2、筛选条件是容易列举的 //枚举法的应用 输出100以内所有的完全平方数 for(int i=1;i<=100;i++){ int k=sqrt(i); if(k*k==i) cout<<i<<" "; } for(int i=1;i*i<=100;i++){ cout<<i*i<<" "; } |