算法竞赛入门经典笔记(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";

 

后面陆续发表

你可能感兴趣的:(算法)