首页 > 编程语言 > Java基础练习(数组练习及一个较难方法的练习)

Java基础练习(数组练习及一个较难方法的练习)

时间:2023-03-05 17:05:08浏览次数:33  
标签:arr Java int newArr 练习 较难 数组 奖项 随机

1.数组练习

<1>现有一个整数数组,数组中的每个元素都是[0-9]之间的数字,从数组的最大索引位置开始到最小索引位置,依次表示整数的个位、十位、百位。。。依次类推。请编写程序计算,这个数组所表示的整数值。例如:数组:{2, 1, 3, 5, 9}

表示的整数为21354 注:是整数类型的两万一千三百五十九,不是字符串拼接起来的。

提示:、首先肯定要获取数组的每一个元素,需要遍历。

2、根据题目分析,个位元素本身就可以表示值,十位是元素乘以10来表示值,百位就是元素乘以100来表示值。。。它们之间有什么规律呢?从左至右,每一位所表示的值是下一位的十倍。

public static void main(String[] args){
//1.定义一个int类型的数组,使用静态初始化存储
int[] arr = {4,5,6,7,8};
//2.定义一个变量num用来存储得到的整数
int num = 0;
//3.对数组进行遍历
for(int i = 0;i < arr.length;i++){
//4.计算高位乘以10再加上当前前位的值
num = num * 10 + arr[i];
}
//5.打印结果
System.out.println(num);
}

2.方法练习

<2>一个大V直播抽奖,奖品是现金红包,分别有{2,588,888,1000,10000}五个奖金。请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。打印效果如下:(随机顺序,不一定是下面的顺序)

888元的奖金被抽出

588元的奖金被抽出

10000元的奖金被抽出

1000元的奖金被抽出

2元的奖金被抽出

提示:1. 奖项要随机出现,但奖金不是连续的数字,不能被随机产生。能随机产生的只有数组的索引了,可以使用随机索引来代表随机元素。因为索引和元素是一一对应的,

2. 哪些奖被抽过了,哪些奖没有被抽过,要定义一个数组来存放已经被抽过的奖项。

3. 每个奖项只能被抽出一次,要写一个方法来控制奖项不重复。

 public static void main(String[] args){
//1.定义一个数组存储奖金
int[] arr = {2,588,888,1000,10000};
//2.定义一个新数组用于存储抽奖结果
int[] newArr = new int [arr.length];
//3.抽奖,要求抽到的奖项是随机的,所以要使用随机数
Random r = new Random();
//因为有五个奖项,所以要循环5次
for(int i = 0;i < 5;i++){
//获取随机索引
int randomIndex =r.nextInt(arr.length);
//获得奖项
int price =arr[randomIndex];
//判断当前奖项是否存在,如果存在就重新抽取
//如果不存在,就表示有效奖项
boolean flag = contains(newArr,price)
if(!flag){
//把当前抽取的奖项放到新数组newArr中
newArr[i] = price;
//添加完成后,移动索引
i++;
}
}
//遍历新数组
for(int i = 0;i < newArr.length;i++)
System.out.println(newArr[i];
}



//定义一个方法,用来判断price在数组中是否存在
//存在 true
//不存在 false 形参:将数组和奖项放入
public static boolean contains(int[] arr,int price)
//遍历数组
for(int i = 0;i < arr.length;i++)
//判断奖项和数组中的奖项是否相等
if(arr[i] == price)
return true;
}
}
return false;
}











                        Java基础练习(数组练习及一个较难方法的练习)_System








标签:arr,Java,int,newArr,练习,较难,数组,奖项,随机
From: https://blog.51cto.com/u_15912723/6101515

相关文章

  • Java 面向对象
    1、构造方法每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。在创建一个对象的时候,至少要调用一个构造方法。构造方法的......
  • JavaScript dom查询2
    <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><html> <head> <metahttp-equiv="Content-Type"content="text/html;......
  • java开发JDK工具的安装
    1.java开发工具的构成(1)JVM即java虚拟机,用于解释翻译java生成的自解码文件,因为java中有了这个,才能实现java语言跨平台运行java自解码文件(2)JRE即java运行环境,它是由JVM和ja......
  • JavaSE——集合ArrayList
    集合和数组的优势对比:长度可变添加数据的时候不需要考虑索引,默认将数据添加到末尾1.1ArrayList类概述什么是集合提供一种存储空间可变的存储模型,存储的数据......
  • DVWA 之 JavaScript - JavaScript攻击
    十二、JavaScript-JavaScript攻击原理在页面上输入的内容中带有可执行的javascript,而使用这段输入内容的时候,让这段用户提供的代码执行了,也就是你写的代码执行了非你......
  • Java 类加载时机(动态、静态) 与 类加载过程 详解
    (目录)类加载动态加载和静态加载反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载。静态加载:编译时加载相关的类,如果没有则报错,依赖性太强动态......
  • 三天吃透Java基础八股文
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校......
  • java内存分配
    1.栈方法运行时使用的内存。比如main方法运行,进入方法栈中执行2.堆存储对象或者数组。new来创建的都存储在堆内存3.方法区存储可以运行的class文件4.本地方法栈JVM......
  • java序列化 教程
    序列化的条件:序列化必须要满足两个条件:1.该对象必须实现java.io.Serializble接口2.改对象的所有属性必须是可序列化的,若有属性不可序列化也须注明是短暂的 注:检......
  • java8新特性-引用流ReferencePipeline
    ReferencePipeline实现了Stream接口,Stream接口定义了顺序和并行聚合的元素序列操作。publicinterfaceStream<T>extendsBaseStream<T,Stream<T>>{Stream<T......