java判断数字位数,java判断绝对值

Java剖断数字位数的措施总计,java判别数字位数

万般方法:

import java.util.Scanner;

public class Digits { 
  public static void main(String[] args){ 
    Scanner input=new Scanner(System.in);//声明扫描仪变量 
    System.out.println("请输入0-999999999整数");//系统提示输入 
    try{ //监听异常
     while(true){
    int num=input.nextInt(); 
    int count = 0; 
    if (num < 0 || num > 999999999) 
    System.out.println("输入超出范围"); 
    else if (num==0) 
      System.out.println("输入的是1位数"); 
    else { 
       while(num > 0){ 
      num=num / 10; 
      count++; 
       } 
       System.out.println("输入的是"+count+"位数");
        }
       } 
    }
    catch (Exception e){ //捕捉异常
    System.out.println("请正确输入");
    e.printStackTrace(); //打印异常信息在程序中出错的位置及原因
    }
  } 
}

诚如函数/方法:

import java.util.Scanner;

public class Digits { 
 boolean digits(int num){ //创建boolean类型的方法
   if (num < 0 || num > 999999999){
    return true; 
   }
   else{
    return false;
   }
 }
  public static void main(String[] args){
   Digits d=new Digits (); //创建对象
   Scanner input=new Scanner(System.in);//声明扫描仪变量 
   System.out.println("请输入0-999999999整数");//系统提示输入
   try{ //监听异常
    while(true){
   int num=input.nextInt();//取得下一行输入的值
   int count=0;
   if(num==0){
    System.out.println("输入的是1位数");
   }
   else if(d.digits(num)){ //对象调用digits方法
    System.out.println("输入超出范围");
   }
   else{
    while(num > 0){
     num=num / 10;
     count++;
     }
    System.out.println("输入的是"+count+"位数");
     }
    }
   }
   catch (Exception e){ //捕捉异常
    System.out.println("请正确输入");
    e.printStackTrace(); //打印异常信息在程序中出错的位置及原因
   }
  } 
}

表明:方法二用到了面向对象的企图

普通方法: import java.util.Scanner;public class Digits { public static
void main(String[] args){ Scanner input=…

Java推断绝对值的不二秘诀总括,java判别相对值

if-else语句判定:

import java.util.Scanner;

public class AbsoluteValue { 
  public static void main(String[] args){ 
    Scanner input=new Scanner(System.in);//声明扫描仪变量 
    System.out.println("请输入数值");//系统提示输入 
    try{ //监听异常
    while(true){ //不断读取用户输入的值
    float num=input.nextFloat();//强制转换为浮点数 
    if(num==0){ //如果用户输入-0,则输出0
     System.out.println("绝对值为"+0);
    }
    else if(num>0){
     System.out.println("绝对值为"+num);
    }
    else if(num<0){
     System.out.println("绝对值为"+(-num));
     }
    }
   }
    catch(Exception e){ //异常处理
   System.out.println("请正确输入");
   e.printStackTrace(); //打印异常信息在程序中出错的位置及原因     }
   } 
} 

元春运算符剖断:

import java.util.Scanner;

public class AbsoluteValue { 
  public static void main(String[] args){ 
   Scanner input=new Scanner(System.in);//声明扫描仪变量 
    System.out.println("请输入数值");//系统提示输入 
    try{ //监听异常
    while(true){ //不断读取用户输入的值
     float num=input.nextFloat();//强制转换为浮点数 
     if(num==0){ //如果用户输入-0,则输出0
       System.out.println("绝对值为"+0);
     }
     else{
     num=(num>0?num:-num);//三元运算符 
     System.out.println("绝对值为"+num);
     }
     }
    }
   catch(Exception e){ //异常处理
   System.out.println("请正确输入");
   e.printStackTrace(); //打印异常信息在程序中出错的位置及原因
    }
   } 
}

评释:长富运算符的语法是 条件 ? 结果1 : 结果2;优点代码简洁,劣点可读性差

例子:int a,b,c;

a=2;b=3;

c=a>b?100:200;

语意:如果a>b,c=100;a<b,c=200

if-else语句剖断: import java.util.Scanner;public class AbsoluteValue {
public static void main(String[] args){ Scanne…

Java平闰年判别的点子总计,java平闰年剖断

日常来讲方法:

import java.util.Scanner; 

public class Bissextile{ 
 public static void main(String[] args){ 
    Scanner input=new Scanner(System.in);//声明扫描仪变量 
    System.out.println("请输入年份");//系统提示输入年份 
    try{ //监听异常
    while(true){ //不断读取用户输入的值
      int years=input.nextInt();//取得下一行输入的年份值 
      if (years<1000||years>9999) 
         System.out.println("请输入大于1000小于9999的年份"); 
      else if(years % 4 == 0 && years % 100 != 0 || years % 400 == 0){ //平闰年判断算法
           System.out.println(years+"年是闰年"); 
          } 
      else { 
          System.out.println(years+"年是平年"); 
        } 
      } 
     }
    catch(Exception e){ //异常处理
    System.out.println("请正确输入");
    e.printStackTrace(); //打印异常信息在程序中出错的位置及原因
    }
   } 
} 

诚如函数/方法:

import java.util.Scanner;

public class Bissextile { 
 boolean bissextile(int year){ //创建boolean类型的方法
  if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){ //平闰年判断算法
   return true;
  }
  else{
   return false;
  }
 }
 public static void main(String[] args){
  Bissextile b=new Bissextile(); //创建对象
  Scanner input=new Scanner(System.in);//声明扫描仪变量 
  System.out.println("请输入年份");//系统提示输入年份
  try{
  while(true){ //不断读取用户输入的值
  int year1=input.nextInt();//取得下一行输入的年份值
  if (year1<1000||year1>9999){
   System.out.println("请输入大于1000小于9999的年份");
  }
  else if(b.bissextile(year1)){ //对象调用bissextile方法
   System.out.println(year1+"是闰年");
  }
  else{
   System.out.println(year1+"是平年");
    }
   }
  }
  catch(Exception e){ //异常处理
       System.out.println("请正确输入");
       e.printStackTrace(); //打印异常信息在程序中出错的位置及原因
  }
 }
}

表明:第三种艺术用到了面向对象的斟酌

普通方法: import java.util.Scanner; public class Bissextile{ public
static void main(String[] args){ Scanner input=ne…

Java 中贯彻自由无重复数字的秘技,java数字

诚如不怎么开垦经历的意中人都能完毕那样的功能,只可是是效能上的难题。大家日常在面前碰到如此的题材时,总会平铺直序的联想到,先生成八个数组,然后在多个巡回中向数组中增添随机数字,在累加数字的进度中先找找一下数组中是或不是存在这几个数字,假如不设有那个数字就平昔助长到数组中;假使存在这一个数字就不增添。大家日常都是这么思索难点的,那样思量也能促作用益,作者刚刚也说了,只不过是效用上的标题。

为了越来越好地精晓那几个题意,我们先来看下具体内容:生成一个1-100
的自便数组,但数组中的数字不能够重复,即地方是自由的,但数组成分不能够再一次。在此处,未有给大家规定数组的尺寸,大家能够让它是1-100中间的轻巧长度。

接下去让大家看一下哪些更加好地落到实处它,平常我们会接纳 ArrayList
来贯彻,如上边代码所示:

复制代码 代码如下:
package cn.sunzn.randomnumber;

import java.util.ArrayList;
import java.util.Random;

public class Demo {
   public static void main(String[] args) {
       Object[] values = new Object[20];
       Random random = new Random();
       ArrayList<Integer> list = new ArrayList<Integer>();

       for (int i = 0; i < values.length; i++) {
           int number = random.nextInt(100) + 1;
           if (!list.contains(number)) {
               list.add(number);
           }
       }

       values = list.toArray();

       /********** 遍历数组并打字与印刷数据 **********/
       for (int i = 0; i < values.length; i++) {
           System.out.print(values[i] + “\t”);
           if ((i + 1) % 10 == 0) {
               System.out.println(“\java判断数字位数,java判断绝对值。n”);
           }
       }
   }
}

地点这么些完结进度成效非常的低的。因为在历次增加时都要去遍历一下脚下列表中是否存在那些数字,时间复杂度是
O(N^2)。大家得以这么思索一下:既然涉及到无重复,大家得以想转手 HashSet
和 HashMap 的机能。HashSet 达成 Set 接口,Set
在数学上的概念正是无重复,无次序的联谊。而 HashMap 达成Map,也是不允许再一次的 Key。这样大家得以接纳 HashMap 或 HashSet 来落到实处。

在应用 HashMap 达成时,只须要将它的 key 转化成数组就可以了,代码如下:

复制代码 代码如下:
package cn.sunzn.randomnumber;

import java.util.HashMap;
import java.util.Random;

public class Demo {
   public static void main(String[] args) {
       Object[] values = new Object[20];

       Random random = new Random();
       HashMap<Object, Object> hashMap = new HashMap<Object,
Object>();

       /******* 生成自由数字并存入 HashMap *******/
       for (int i = 0; i < values.length; i++) {
           int number = random.nextInt(100) + 1;
           hashMap.put(number, i);
       }

       /********** 从 HashMap 导入数组 **********/
       values = hashMap.keySet().toArray();

       /*********** 遍历数组并打字与印刷数据
***********/
       for (int i = 0; i < values.length; i++) {
           System.out.print(values[i] + “\t”);
           if ((i + 1) % 10 == 0) {
               System.out.println(“\n”);
           }
       }
   }
}

是因为 HashSet 和 HashMap 的涉及太近了,HashSet 在底层正是用 HashMap
来达成的,只然则未有 Value 的群集,只有三个 Key 的聚合,所以也可利用
HashSet 来贯彻,代码如下:

复制代码 代码如下:
package cn.sunzn.randomnumber;

import java.util.HashSet;
import java.util.Random;

public class Demo {
   public static void main(String[] args) {
       Random random = new Random();
       Object[] values = new Object[20];
       HashSet<Integer> hashSet = new HashSet<Integer>();

       /******* 生成自由数字并存入 HashSet *******/
       for (int i = 0; i < values.length; i++) {
           int number = random.nextInt(100) + 1;
           hashSet.add(number);
       }

       values = hashSet.toArray();

       /*********** 遍历数组并打字与印刷数据
**********/
       for (int i = 0; i < values.length; i++) {
           System.out.print(values[i] + “\t”);
           if ((i + 1) % 10 == 0) {
               System.out.println(“\n”);
           }
       }
   }
}

这么达成功用稍微好些。即便给大家限定了数组的长短,只必要转移下 for
循环,设置成 whlie 循环就能够了。如下所示:

复制代码 代码如下:
package cn.sunzn.randomnumber;

import java.util.HashSet;
import java.util.Random;

public class Demo {
   public static void main(String[] args) {
       Random random = new Random();
       Object[] values = new Object[20];
       HashSet<Integer> hashSet = new HashSet<Integer>();

       /****** 生成自由数字并存入 HashSet ******/
       while (hashSet.size() < values.length) {
           hashSet.add(random.nextInt(100) + 1);
       }

       values = hashSet.toArray();

       /********** 遍历数组并打字与印刷数据 **********/
       for (int i = 0; i < values.length; i++) {
           System.out.print(values[i] + “\t”);
           if ((i + 1) % 10 == 0) {
               System.out.println(“\n”);
           }
       }
   }
}

中落到实处自由无重复数字的点子,java数字
日常不怎么开荒经历的心上人都能落到实处那样的成效,只然而是效能上的难点。咱们平常在直面那样的…

发表评论

电子邮件地址不会被公开。 必填项已用*标注