算法入门(一)
来源:互联网 发布:钱龙金典版软件 编辑:程序博客网 时间:2024/06/15 17:48
1.for循环的使用
其实简单的for(初始化;判断条件;调整)循环,一般都会用。
Tip:break用于跳出for循环,continue用于跳出此次循环,进入下一次; for(;;)死循环
如:
int i,j=3,n=5;for(i=0;i<n;i++){ if(i>j) { break; }}//循环结束时,i=4
Q1.求1000-9999中的aabb类型的完全平方数(即前两位相等,后两位也相等)
for(i=1;;i++){ if(i*i<1000) {continue;} if(i*i>9999) {break;} int x=i*i; int m=x/100; int n=x%100; if(m%10==m/10&&m%10==n/10) { cout<<x<<endl; }}
2.溢出问题
计算过程中或计算结果超过了规定的范围,就是溢出。(以前看题目都不太注意给定的条件,如a<=7,n<10^9。以后要多注意!)
Q2.输入n,求1-n的阶乘的和的末尾6位数
一般代码:
int n,sum=0,i,j,f;cin>>n;for(i=1;i<=n;i++){f=1;for(j=1;j<=i;j++){f*=j;}sum+=f;}cout<<sum%MOD<<endl;return 0;以上代码的计算过程中就会出现乘法溢出的问题,如果单独计算1-20的阶乘之和的结果都得不出正确结果
所以,在计算过程中就直接对每一个加数对MOD取余,可以得到正确结果。代码如下
int n,sum=0,i,j,f;cin>>n;for(i=1;i<=n;i++){f=1;for(j=1;j<=i;j++){f=f*j%MOD; //每个加数都先进行取余操作}sum+=f;}cout<<sum%MOD<<endl; //最后的结果也进行取余操作
3.文件操作
重定向:(个人理解:就是将输入的流的来源改变,从键盘读取改为文件读取)
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
(补充:)
C语言重定向:
FILE *fin; //需要关闭文件,fclose();FILE *fout;fin=fopen("in.txt","r");fout=fopen("out.txt","w"); fclose(fin); fclose(fout);C++重定向:
streambuf *backup1,*backup2;ifstream fin;ofstream fout;fin.open("in.txt");fout.open("out.txt");backup1=cin.rdbuf();cin.rdbuf(fin.rdbuf());cout.rdbuf(fout.rdbuf());cin.rbuf(fin.rdbuf); //输入完成后写(最后一个cin后面)cout.rdbuf(fout.rdbuf); //输出完成后写(最后一个cout后面)input.txt需要自己定义,output.txt会在程序运行后产生,自己可以不建立。两个TXT文档都会出现在CPP所在的文件夹中。
int _tmain(int argc, _TCHAR* argv[]){freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);int n,sum=0,i,j,f;cin>>n;for(i=1;i<=n;i++){f=1;for(j=1;j<=i;j++){f=f*j%MOD;}sum+=f;}cout<<sum%MOD<<endl;cout<<"Timed used:"<<clock()/CLOCKS_PER_SEC<<endl;return 0;}
0 0
- 算法入门(一)
- 遗传算法入门(一)
- 算法入门实例(一)
- 遗传算法入门(一)
- 算法--入门(一)--时间
- 遗传算法入门到掌握(一)
- 遗传算法入门到掌握(一)
- 遗传算法入门到掌握(一)
- 遗传算法入门到掌握(一)
- java递归算法入门小结(一)
- 遗传算法入门到掌握(一)
- 遗传算法入门到掌握(一)
- 遗传算法入门到掌握(一)
- 遗传算法入门到掌握(一)
- 遗传算法入门到掌握(一)
- 遗传算法入门到掌握(一)
- 遗传算法入门到掌握(一)
- 遗传算法入门到掌握(一)
- placeholder在不同浏览器下的表现及兼容方法
- 关于TNS: could not resolve the connect identifier specified的解决办法
- 兰州水污染
- 6.8 final 关键字 和 6 . 8 . 1 f i n a l 数据
- 一般怎样恢复u盘丢失的文件
- 算法入门(一)
- XHTML标签的嵌套规则
- OpenERP雇员(员工)表与用户表关联字段解析[3]
- mog使用指南
- 又一城携手中国鞋服行业电商峰会:五年坚实合作,共助电商成长!
- 数据结构和算法总结
- 关于SharePoint TimerJob安装后无部署
- LeetCode - Sort List
- 在ubuntu12.04+hadoop2.3.0集群上运行WordCount出错