A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 15891252910 中级黑马   /  2016-8-3 09:48  /  1004 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

3JAVA基础编程练习题
[size=10.5000pt]【程序1】
[size=10.5000pt]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子[size=10.5000pt]对[size=10.5000pt]数为多少?
[size=10.5000pt]程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
[size=10.5000pt]public class Prog1{
[size=10.5000pt]        [size=10.5000pt]public static void main(String[] args){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]int n = 10;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]System.out.println(""+n+"个月兔子总数为"+fun(n));
[size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        [size=10.5000pt]private static int fun(int n){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]if(n==1 || n==2)
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]   return 1;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]else
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]   return fun(n-1)+fun(n-2);
[size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]}
[size=10.5000pt]【程序2】
[size=10.5000pt]题目:判断101-200之间有多少个素数,并输出所有素数。
[size=10.5000pt]程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
[size=10.5000pt]public class Prog2{
[size=10.5000pt]        [size=10.5000pt]public static void main(String[] args){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]int m = 1;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]int n = 1000;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]int count = 0;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]//统计素数个数
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]for(int i=m;i<n;i++){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]if(isPrime(i)){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]count++;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]System.out.print(i+" ");
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]if(count%10==0){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]System.out.println();
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]System.out.println();
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]System.out.println("在"+m+"和"+n+"之间共有"+count+"个素数");
[size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        [size=10.5000pt]//判断素数
[size=10.5000pt]        [size=10.5000pt]private static boolean isPrime(int n){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]boolean flag = true;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]if(n==1)
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]  flag = false;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]else{
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]for(int i=2;i<=Math.sqrt(n);i++){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]if((n%i)==0 || n==1){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]flag = false;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]break;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt] else
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]   flag = true;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]  }
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]return flag;
[size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]}
[size=10.5000pt]【程序3】
[size=10.5000pt]题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
[size=10.5000pt]程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
[size=10.5000pt]public class Prog3{
[size=10.5000pt]        [size=10.5000pt]public static void main(String[] args){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]for(int i=100;i<1000;i++){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]if(isLotus(i))
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]   System.out.print(i+" ");
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]System.out.println();
[size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]        [size=10.5000pt]//判断水仙花数
[size=10.5000pt]        [size=10.5000pt]private static boolean isLotus(int lotus){
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]int m = 0;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]int n = lotus;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]int sum = 0;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]m = n/100;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]n  -= m*100;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]sum = m*m*m;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]m = n/10;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]n -= m*10;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]sum += m*m*m + n*n*n;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]if(sum==lotus)
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]return true;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]else
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]return false;
[size=10.5000pt]        [size=10.5000pt]        [size=10.5000pt]}
[size=10.5000pt]}



[size=10.5000pt]

5 个回复

倒序浏览
乱码了
回复 使用道具 举报
什么东西  煞笔
回复 使用道具 举报

尴尬尴尬,{:2_40:}
回复 使用道具 举报
????
回复 使用道具 举报
什么都看不了啊 能不能改一下啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马