算法竞赛入门经典笔记(1-3章)
第一章 程序设计入门
1.整数/整数=整数,浮点数/浮点数=浮点数
2.PI的使用
java中 Math.PI(在java.lang.Math包中)
C/C++中 const double pi = 4.0*atan(1.0); (即4*arctan(1))
3.将25按025输出
输出格式为%03d;
4.a,b互换数值方法
(1)、int t=a;a=b;b=t;
(2)、不使用中间变量
a=a+b;
b=a-b;
a=a-b;
第二章、循环结构程序设计
1.计算S=1!+2!+3!+4!........+n!
对最后的结果取mod1000000;
注意分析题目,聪明的你会发现25!,末尾有6个0,mod1000000为零,所以从25开始,S的值就不再发生变化,为940313
所以求解S时,if(n>25) n=25;
第三章、数组和字符串
1.比较大的数组应尽量声明在main函数之外
只有放在外面时,数组a才可以开的很大,放在main函数内时,数组稍微大就会异常退出。
2.数组拷贝与初始化
int [] a = {1,2,3,4};
int [] b = Arrays.copyOf(a,a.length);
在java中,定义数组时int [] a = new int[10];默认的初始化为全零
java中 Arrays.fill(b,10); //将数组b[]全部设置为10;
在C++中
memcpy(b,a,sizeof(a)); //在头文件 #include<String.h>
memset(a,0,sizeof(a)); //将a中的元素全部设置为0;
3.字符串复制、比较、连接
java
str.length()//返回字符串长度
str1.equals(str2)//java字符串比较
str.substring(int beginIndex, int endIndex) //java字符串比较 例如str.substring(3,4) 截取3-4的字符串
java判断字符串中是否包含某个字符或者字符串
String s1="abcdef";
String s2 ="abc";
int x =s1.indexOf(s2);//s1中包含s2,则x=0;否则 x=-1;
java字符串拼接 用+;
例如 String s1="abc";String s2="nba";String s3=s1+s2;则s3="abcnba";
后面陆续发表