zoukankan      html  css  js  c++  java
  • Java50题——学习以及思考

     1 /*
     2 【程序1】
     3 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
     4 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
     5 问每个月的兔子对数为多少? 
     6 分析:
     7 1 1 2 3 5 8 13
     8 x3=x2+x1
     9 反思:代码逻辑清晰,每次结果等于前两之和。
    10 尝试更复杂的递归调用解决问题。
    11 */
    12 class demo2{
    13     public static void main(String[] args){
    14         int day=1;
    15         int x3,x2=1,x1=1;
    16         System.out.println("1");
    17         System.out.println("1");
    18         for(day=3;day<20;day++){
    19             x3=x2+x1;
    20             x1=x2;
    21             x2=x3;
    22             System.out.println(x3);
    23         }
    24     }
    25 }
    26 /*
    27 递归分析:
    28 递归条件;等于前两之和
    29 递归出口:第二次 或 第一次 结果肯定为一。
    30 
    31 反思:递归只能输出某个月的兔子,不知道怎么输出一到十月的兔子,
    32 因为 10=9+8 9=8+7;有两个8月。在计算中不是只有一个八月,也不是线性依次输出。
    33 return 的结果:
    34         10
    35     9       8
    36    8 7     7 6
    37 */
    38 class demo1{
    39     public static void main(String[] args){
    40         //
    41         System.out.println(func(10));
    42         //func(10);
    43     }
    44     static int func(int x){
    45             if(x==1||x==2){
    46                 //System.out.println("1");
    47                 return 1;
    48                 
    49             }else{
    50                 //System.out.println(x);
    51                 //int z = func(x-1)+func(x-2);
    52                 //System.out.println(z);
    53                 return func(x-1)+func(x-2);
    54                 
    55             }
    56         }
    57 }

     

     1 /*
     2 题目:判断101-200之间有多少个素数,并输出所有素数。
     3 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),
     4 如果能被整除,则表明此数不是素数,反之是素数。
     5 分析:
     6 循环101到200;每个数除二看结果;
     7 */
     8 class demo2{
     9     public static void main(String[] args){
    10         int x =101;
    11         for(x=101;x<201;x++){
    12             if(isPrime(x)){
    13                 System.out.println(x);
    14             }
    15         }
    16     }
    17     static  boolean isPrime(int x){
    18         //boolean flage;
    19         if(x==1){
    20             return false;
    21         }
    22         for(int y=2;y<=Math.sqrt(x);y++){
    23             if(x%y == 0){
    24                 return false;
    25             }
    26         }
    27         return true;
    28     }
    29 }

     

     1 /*
     2 【程序3】
     3 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
     4 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 
     5 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
     6 提取一个数的每一位的数
     7 反思:主要是对/和%的了解
     8 */
     9 class demo3{
    10     public static void main(String[] args){
    11         for(int i=100;i<1000;i++){
    12             if(islotus(i)){
    13                 System.out.println(i);
    14             }
    15         }
    16     }
    17     static boolean islotus(int x){
    18         int bai,shi,ge;
    19         bai=x/100;
    20         shi=x%100/10;
    21         ge=x%10;
    22         if(x==bai*bai*bai+shi*shi*shi+ge*ge*ge){
    23             return true;
    24         }else{
    25             return false;
    26         }
    27     }
    28 }

     1 /*
     2 【程序4】
     3 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
     4 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
     5 (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
     6 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
     7 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
     8 反思:while是关键,不需要专门挑选出质数。
     9 */
    10 public class demo4{
    11     public static void main(String[] args){
    12         int n = 90;
    13         decompose(n);
    14     }
    15     private static void decompose(int n){
    16         System.out.print(n+"=");
    17         for(int i=2;i<n+1;i++){
    18             while(n%i==0 && n!=i){
    19                 n/=i;
    20                 System.out.print(i+"*");
    21             }
    22             if(n==i){
    23                 System.out.println(i);
    24                 break;
    25             }
    26         }
    27     }
    28 }

    /*
    【程序5】
    题目:利用条件运算符的嵌套来完成此题:
    学习成绩>=90分的同学用A表示,
    60-89分之间的用B表示,
    60分以下的用C表示。
    程序分析:(a>b)?a:b这是条件运算符的基本例子。 
    分析:()?true:false 三目运算符的嵌套使用。
    */
    class demo5{
        public static void main(String[] args){
            int x= 65;
            grade(x);
        }
        static void grade(int x){
            String str= (x>=90)?"A":(x>=60)?"B":"c";
            System.out.println(x+"等级"+str);
        }
    }

  • 相关阅读:
    企业IT管理说:全自动就一定是最好的吗?
    银行爱“IOE”爱得有多深
    谷歌数据中心
    屏蔽爬虫
    ,net运行框架
    视频格式
    HTTP协议
    IE的体系和webrowser
    jsp请求由servlet响应的方式
    Web请求响应简单整理
  • 原文地址:https://www.cnblogs.com/lanbofei/p/11463390.html
Copyright © 2011-2022 走看看