黑马程序员技术交流社区

标题: java基础编程题 [打印本页]

作者: 15891252910    时间: 2016-8-3 09:48
标题: java基础编程题
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]


作者: 张彦虎    时间: 2016-8-3 09:51
乱码了
作者: 酷我之情    时间: 2016-8-3 09:53
什么东西  煞笔
作者: 15891252910    时间: 2016-8-3 09:56
张彦虎 发表于 2016-8-3 09:51
乱码了

尴尬尴尬,{:2_40:}
作者: zhaoyar    时间: 2016-8-3 13:16
????
作者: 哈韩浪子    时间: 2016-8-18 10:28
什么都看不了啊 能不能改一下啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2