Java学习笔记6(循环和数组练习题)
1.输出100到1000的水仙花数:
public class LoopTest{
public static void main(String[] args){
int bai = 0;
int shi = 0;
int ge = 0;
for(int i = 100; i < 1000; i++){
bai = i/100;
shi = i/10%10;
ge = i%10;
if(bai*bai*bai+shi*shi*shi+ge*ge*ge == i ){
System.out.println(i);
}
}
}
}
2.打印所有字母:
public class LoopTest{
public static void main(String[] args){
char lower = 'a';
char upper = 'A';
for(int i = 0 ; i < 26 ; i++){
System.out.println(lower+" "+upper);
lower++;
upper++;
}
}
}
3.打印99乘法表:
public class LoopTest{
public static void main(String[] args){
for(int i = 1; i <=9 ; i++){
for(int j = 1 ; j<=i ; j++){
System.out.print(j+"*"+i+"="+j*i+" ");
}
System.out.println();
}
}
}
4.按格式遍历数组:
public class ArrayTest{
public static void main(String[] args){
int[] arr1 = {4,6,7,1};
int[] arr2 = {1,2,3,9,10};
printArray(arr1);
printArray(arr2);
}
public static void printArray(int[] arr){
System.out.print("[");
for(int i = 0 ; i <arr.length ; i++){
if( i == arr.length-1){
System.out.println(arr[i]+"]");
}else{
System.out.print(arr[i]+",");
}
}
}
}
5.数组元素逆序(注意:不是反向遍历):
public class ArrayTest{
public static void main(String[] args){
int[] arr = {1,2,3,4,7,8,9};
reverse(arr);
printArray(arr);
}
public static void reverse(int[] arr){
for(int min=0,max = arr.length-1; min<max ; min++,max--){
int temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;
}
}
public static void printArray(int[] arr){
System.out.print("[");
for(int i = 0 ; i <arr.length ; i++){
if( i == arr.length-1){
System.out.println(arr[i]+"]");
}else{
System.out.print(arr[i]+",");
}
}
}
}
6.选择排序:
public class ArrayTest{
public static void main(String[] args){
int[] arr = {3,1,5,7,8,9,2};
selectSort(arr);
printArray(arr);
}
public static void selectSort(int[] arr){
for(int i = 0; i < arr.length-1; i++){
for(int j = i+1; j<arr.length; j++){
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
public static void printArray(int[] arr){
System.out.print("[");
for(int i = 0 ; i <arr.length ; i++){
if( i == arr.length-1){
System.out.println(arr[i]+"]");
}else{
System.out.print(arr[i]+",");
}
}
}
}
7.冒泡排序:
public class ArrayTest{
public static void main(String[] args){
int[] arr = {3,1,5,7,8,9,2};
bubbleSort(arr);
printArray(arr);
}
public static void bubbleSort(int[] arr){
for(int i = 0; i<arr.length-1 ;i++){
for(int j = 0; j<arr.length-i-1; j++){
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
public static void printArray(int[] arr){
System.out.print("[");
for(int i = 0 ; i <arr.length ; i++){
if( i == arr.length-1){
System.out.println(arr[i]+"]");
}else{
System.out.print(arr[i]+",");
}
}
}
}
8.折半查找法(注意必须是有序的数组):
public class ArrayTest{
public static void main(String[] args){
int[] arr = {1,3,5,7,9,11};
int index = binarySearch(arr, 7);
System.out.println(index);
}
public static int binarySearch(int[] arr,int key){
int min = 0;
int max = arr.length-1;
int mid = 0;
while( min<=max ){
mid = (min+max)/2;
if(key>arr[mid]){
min = mid+1;
}else if(key<arr[mid]){
max = mid-1;
}else{
return mid;
}
}
return -1;
}
}
Java学习笔记6(循环和数组练习题)的更多相关文章
- Java学习笔记之---方法和数组
Java学习笔记之---方法与数组 (一)方法 (1)什么是方法? 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 (2)方法的优点 使程序变得更简短而 ...
- java学习笔记(2)——数组
1.创建数组: int[] a = new int[n];//数组长度n不要求为常数,一旦创建了数组,其大小不可改变 int[] a = {0,1,2,3};//也可这样定义 获得数组元素的个数:ar ...
- 【Java学习笔记】集合转数组---toArray()
package p2; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ...
- Java学习笔记(五)——数组
一.数组使用方法 1. 声明数组 语法: 数据类型[ ] 数组名: 或者 数据类型 数组名[ ]: 其中,数组名可以是任意合法的变量名 2. 分配空间 简单地说,就是指定数组中最多可存储多少个元素 ...
- java学习笔记 --- 条件,循环语句
一.三元运算符 A:格式 比较表达式?表达式1:表达式2; B:执行流程: 首先计算比较表达式的值,看是true还是false. 如果是true,表达式1就是结果. 如果是 ...
- Java学习笔记之——循环语句
一.for循环 语法: for(变量初始化:条件判断:更新循环变量){ 循环体: } 案例: 二.while循环 语法: while(条件){ 循环体: } 如果条件为true,执行循环体,false ...
- Java学习笔记之基础语法(数组)
数组 数组概述:是具有相同数据类型的数据的集合 数组的定义:数据类型 数组名 [] 数组特点: 1,数组是引用数据类型. 2,数组值用大括号,元素之间用逗号隔开,元素的个数是0-N个 3,数组长度是固 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
随机推荐
- 高版本号chrome安装flashplayer debuger后无法使用的问题
起因应该是苹果公司指出flash player的安全问题,还有各种原因导致google将在未来取消NPAPI的支持,所以fp们就悲剧了在高版本号chrome(42以上)默认是关闭外部安装的插件使用的, ...
- telematics product and company in China
持续更新中. 总的来看后装OBD市场日渐繁荣,可是应用深度不够:前装infotainment受限于产量和商业模式,举步维艰. 车联网作为汽车信息化的起点,会有泡沫,也会在大数据和物联网的浪潮中逐步积淀 ...
- 跨平台应用集成(在ASP.NET Core MVC 应用程序中集成 Microsoft Graph)
作者:陈希章 发表于 2017年6月25日 谈一谈.NET 的跨平台 终于要写到这一篇了.跨平台的支持可以说是 Office 365 平台在设计伊始就考虑的目标.我在前面的文章已经提到过了,Micro ...
- Django的Models
Django的数据库配置: 1 django默认支持sqlite,mysql, oracle,postgresql数据库 2. 在django的项目中会默认使用sqlite数据库,如果要使用 ...
- Spring Boot [使用 Druid 数据库连接池]
导读 最近一段时间比较忙,以至于很久没有更新Spring Boot系列文章,恰好最近用到Druid, 就将Spring Boot 使用 Druid作为数据源做一个简单的介绍. Druid介绍: Dru ...
- springboot 入门七-静态资源处理
Spring Boot 默认配置的/**映射到/static(或/public ,/META-INF/resources),/webjars/**会映射到classpath:/META-INF/res ...
- (转)iOS-Runtime知识点整理
runtime简介 因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时.也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的 ...
- jQuery 最外面的那层皮
这次学习 jQuery 源码,基于当前最新的版本,3.2.1. IIFE (function() { 'use strict'; // })(); 定义一个匿名函数并立即执行,得益于 javascri ...
- linux命令(shell)
1.cat查看一个文件,linux默认bash 2.echo回显命令 3.ls 4.history历史记录,查看使用过的命令 5.根目录下文件目录 6.bin目录下内容多为应用程序和命令 7.boot ...
- 502 VS 504
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/89 首先看一下概念: 502:作为网关或者代理工作的服务器尝试执 ...