【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
f(n)=f(n-2)+f(n-1) 使用递归
public static int fib(intn)
{if(n==0 || n==1)
{return 1;
}else{return fib(n-1)+fib(n-2);
}
【程序2】
题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
public static boolean fn(intn)
{int flag=(int) Math.sqrt(n);boolean prime=true;for(int i=2;i<=flag;i++)
{if(n%i==0)
{
prime=false;break;
}
}returnprime;
}public static voidmain(String[] args) {//TODO Auto-generated method stub
for(int i=101;i<=200;i++)
{if(fn(i))
{
System.out.println(i);
}
}
}
【程序3】
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
for(int i=100;i<=999;i++)
{int a=i/100;int b=(i-a*100)/10;int c=i%10;if(a*a*a+b*b*b+c*c*c==i)
{
System.out.println(i);
}
}
【程序4】
字符串反转
题目:编程序将一个字符串反转。
输入任意字符串,比如abcd转换成dcba
public staticString reverse(String str)
{char [] mystr=str.toCharArray();for(int count=0;count
{char temp=mystr[count];
mystr[count]=mystr[str.length()-count-1];
mystr[str.length()-count-1]=temp;
}
str=new String(mystr); //字符串转数组
returnstr;
}
【程序5】
题目:有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。
public static voidnumberOfChar(String str)
{char[] mystr=str.toCharArray();int nuberic=0;int letter=0;int chinese_character=0;for(int count=0;count
{int cn=mystr[count];if(cn>=19968 && cn<=40623) //java汉字字符编码
{
chinese_character++;
}if( Character.isDigit(mystr[count]))
{
nuberic++;
}else if(Character.isLetter(mystr[count]))
{
letter++;
}
}
System.out.println("number is " +nuberic +"\nletter is "+letter+"\nchinese letter"+chinese_character);
}