zoukankan      html  css  js  c++  java
  • Java编程思想-第四章练习题

    练习1:写一个程序,打印从1到100的值

    public class Print1To100{
      public static void main(String args[]){
        for(int i = 1 ; i <= 100 ; i++){
          System.out.println("value:" + i) ;
        }
      }
    }

    练习2:写一个程序,产生25个int类型的随机数。对于每个随机值,使用if-else语句来将其分类为大于、小于或等于紧随它而随机生成的值。

     1 public class RandomNumber{
     2   public static void main(String args[]){
     3     int i = 0 ;
     4     Random rand =new Random() ;//实例化Random()
     5     int num1 = 0 ;
     6     while(i<25){
     7       int num2 = rand.nextInt(100) ;//产生一个100以内的整数
     8       System.out.print(num2) ;
     9       if(num1 == num2){//比较新生成的数值是否和前一个数值是否相等
    10         System.out.println(" = The previous number") ;
    11       }
    12       else if(num1 < num2){//比较新生成的数值是否大于前一个数值
    13         System.out.println(" > The previous number") ;
    14       }
    15       else{比较新生成的数值是否小于前一个数值
    16         System.out.println(" < The previous number") ;    
    17       }
    18 
    19       num1 = num2 ;
    20       i++ ;
    21 
    22     }
    23   }
    24 }

    练习3:修改练习2,把代码用一个while无线循环包括起来。然后运行它直至用键盘中断其运行(Ctrl+C)。

     1 public class RandomNumber{
     2   public static void main(String args[]){
     3     int i = 0 ;
     4     Random rand =new Random() ;//实例化Random()
     5     int num1 = 0 ;
     6     while(true){//终止条件修改为true
     7       int num2 = rand.nextInt(100) ;//产生一个100以内的整数
     8       System.out.print(num2) ;
     9       if(num1 == num2){//比较新生成的数值是否和前一个数值是否相等
    10         System.out.println(" = The previous number") ;
    11       }
    12       else if(num1 < num2){//比较新生成的数值是否大于前一个数值
    13         System.out.println(" > The previous number") ;
    14       }
    15       else{比较新生成的数值是否小于前一个数值
    16         System.out.println(" < The previous number") ;    
    17       }
    18 
    19       num1 = num2 ;
    20       i++ ;
    21 
    22     }
    23   }
    24 }

    练习4:写一个程序,使用两个嵌套for循环和取余操作符(%)来探测和打印素数。

     1 public class PrimeNumber{
     2     static boolean isPrimeNum(int num){//判断是否是素数
     3         for(int i = 2; i < Math.abs(num) ; i++){
     4             if(num%i == 0){
     5                 return false ;//不是素数返回false
     6             }
     7         }
     8         return true ;//是素数返回true
     9     }
    10     public static void main(String args[]){
    11         for(int i = -100 ; i < 1000 ; i++){
    12             if(isPrimeNum(i)){//调用isPrimeNum()方法
    13                 System.out.println(i) ;
    14             }
    15         }
    16     }
    17 }

     练习5:重复第三章练习10,不要用Integer.toBinaryString()方法,而是用三元操作符和按位操作符来进行显示二进制的1和0.

    这一题没有做。。。

    练习6:修改前两个程序中的两个test()方法,让他们接受两个额外的参数begin和end,这样在测试testval时将判断它是否在begin和end之间的范围(包含begin和end)。

    练习7:修改本章练习1,通过使用break关键词,使得程序在打印99时退出。然后尝试使用return来达到相同的目的。

     1 public class Print1To100{
     2   public static void main(String args[]){
     3     for(int i = 1 ; i <= 100 ; i++){
     4           if(i == 99){
     5         break ;
     6           }  
     7       System.out.println("value:" + i) ;
     8     }
     9   }
    10 }

    练习8:写一个switch开关语句,为每个case打印一条消息。然后把这个switch放进for循环来测试每个case。先让每个case后面都有break,然后把break删除测试。

     1 public class SwitchTest{
     2     public static void main(String[] args) {
     3         for(int i = 0 ; i < 10 ; i++){
     4             switch(i){
     5                 case 1:System.out.println("case 1") ;
     6                         break ;
     7                 case 2:System.out.println("case 2") ;
     8                         break ;
     9                 case 3:System.out.println("case 3") ;
    10                         break ;
    11                 case 4:System.out.println("case 4") ;
    12                         break ;
    13                 case 5:System.out.println("case 5") ;
    14                         break ;
    15                 case 6:System.out.println("case 6") ;
    16                         break ;
    17                 default:System.out.println("default") ;
    18             }
    19         }
    20     }
    21 }

    练习9:一个斐波那契数列由数字1、1、2、3、5、8、13、21、34等等组成的,其中每个数字(第三个数字起)都是前两个数字的之和。

     1 public class Fibonacci{
     2     public static void main(String[] args) {
     3         int len = Integer.parseInt(args[0]);//取出参数
     4         int num1 = 1 ;//初始化变量
     5         int num2 = 1 ;
     6         int num3 = 0 ;
     7         for(int i = 2 ; i < len ; i++){//循环打印出指定的长度
     8             num3 = num1 + num2 ;//前两个数相加等于等三个数
     9             num1 = num2 ; //交换数值
    10             num2 = num3 ;
    11             System.out.print(num3 + ",") ;
    12         }
    13     }
    14 }

     练习10:吸血鬼数字是指位数为偶数的数字,可以有一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字。以两个0结尾的数字是不允许的,例如一下吸血鬼数字:

    1260 = 21 * 60

    1827 = 21 * 87

    写一个程序找出4位数所有的吸血鬼数字。 

     1 public class Vampire{
     2       public static void main(String[] args) {
     3           String[] ar_str1 , ar_str2 ;
     4           for(int num = 1000 ; num <= 10000 ; num++){//设定被除数为4位数
     5               for(int divisor = 10 ; divisor < 100 ; divisor++){//设定除数为两位数
     6                   int num1 = num / divisor ;
     7                   int remainder = num % divisor ;//余数
     8                   int remainder1 = divisor % 10 ;
     9                   int remainder2 = num1 % 10 ;
    10            //判断是否为吸血鬼数字
    11                   if(remainder == 0 && (remainder1 != 0 || remainder2 != 0)){//判断是否能够被整除,且两个除数末尾不全为0
    12                      ar_str1 = String.valueOf(num).split("") ;//把num拆分成单个字符
    13                      ar_str2 = (String.valueOf(num1) + String.valueOf(divisor)).split("") ;//把num1和divisor拆分成字符
    14                      java.util.Arrays.sort(ar_str1) ;//num排序
    15                      java.util.Arrays.sort(ar_str2) ;
    16                      if(java.util.Arrays.equals(ar_str1, ar_str2)){//比较num是否和num1+divisor相同,如果相同打印,并终止内嵌的循环
    17                          System.out.println(num + "=" + divisor + "*" + num1) ;
    18                          break ;
    19                      }    
    20                  }
    21              }
    22          }
    23      }
    24  }
  • 相关阅读:
    洞察移动互联网的未来,互联网营销 狼人:
    Twitter模式:改造140字,互联网营销 狼人:
    如何改善网站的“跳出率”,互联网营销 狼人:
    Google如何设定目标和衡量成功,互联网营销 狼人:
    像Google一样开会,互联网营销 狼人:
    互联网创业六大经典创业理论,互联网营销 狼人:
    当你输入一个网址的时候,实际会发生什么?,互联网营销 狼人:
    有了HTML5,Flash还能走多远?,互联网营销 狼人:
    FlashPlayer 10.1将灭掉HTML5,互联网营销 狼人:
    初始化文件理解 Cocos2D 如何绘制帧
  • 原文地址:https://www.cnblogs.com/voll/p/6022058.html
Copyright © 2011-2022 走看看