今天的笔试题, mark一下.
1. java阶乘算法
//程序入口public static void main(String args[]){ //定义变量sum用来保存阶乘的结果的和long sum = 0;//定义变量iint i;//这是外循环,变量i的值从1向10递增,for(i=1;i<=10;i++){ //定义变量ji用来保存某个数的阶乘结果long ji = 1;//定义变量Jint j;//这是内循环,变量j将从1向i递增for(j=1;j<=i;j++){ //当j=1时 JI=JI*J=1*1=1; //当J=2时 JI=JI*J=1*2=2; //当J=3时 JI=JI*J=2*3=6 //当J=4时 JI=JI*J=6*4=24 //以此类推直到 J=I 时,循环结束...ji *= j;//这行程序等效于: ji=ji*j;}//总和加上刚才某个数的阶乘的结果sum += ji;//这行程序等效于: sum=sum+ji;}//打印输出结果System.out.println("结果是:"+sum);}}
2. 折半查找
public int find(int[] values, int key){ int lowerBound = 0; int upperBound = values.length -1 ; int curIn; while(true){ curIn = (lowerBound + upperBound ) / 2; if(values[curIn] == key){ return curIn; }else if(lowerBound > upperBound){ return values.length; } else{ if(values[curIn] < key){ lowerBound = curIn + 1; }else{ upperBound = curIn - 1; } } } }