lesson3:java基础系列一些小题目

50道编程题(有精力的同学看看) 50道JAVA基础编程练习题 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... public class Prog1{        public static void main(S 阅读详情

1.素数问题:

求100以内的素数?

 

解:首先了解什么是素数:比1大的整数中,如果除了1和它本身以外,不能被其他正整数整除,就叫素数(质数)。

思路:先设计一个任意数的是否是素数的方法:这里我用for循环先求下6是否是素数,请看代码:

		boolean flag = false;
		int m=6;
		for (int i = 2; i <= 6/2; i++) {
			if(m%i==0) 
			{
				System.out.println(m+"不是质数(素数)");
				flag=true;
				break;
			}
			
		} 
		
		if (!flag) {
			System.out.println(m+ "是质数(素数)");
		}

在for循环中判断 如果6模上,6以内且大于2的数为0则是素数,直接break循环,注意这里设计for循环的终止条件为6/2,是因为如果一个数得除数大于它的1/2,就不会被整除了,这样后面的循环就没有必要再进行下去。好了一次判断结束了,在求100以内的就好算了,只需要在外面在加成循环就ok了,请看代码:

	for (int j = 2; j <= 100; j++) {
			boolean flag = false;

			for (int i = 2; i <= j / 2; i++) {
				if (j % i == 0) {
					System.out.println(j + "不是质数(素数)");
					flag = true;
					break;
				}

			}

			if (!flag) {
				System.out.println(j + "是质数(素数)");
			}
		}

 

2.水仙花:100到999之间的水仙花数

 

解:首先,了解下什么是水仙花,所谓水仙花数就是一个任意位数,它各位的立方之和加起来的数值等于本身,比如说,153,153 = 1 + 125 + 27 ;这题求的是1000以内,所以就先求各个位置的数了,那怎么求呢,请看代码:

	     int i=153; 
		int	a=(i%100)/10; //十位
		int	b=i%10;   //个位
		int	c=i/100;  //百位
		System.out.println("a="+a+",b"+b+",c="+c);

然后在去求这个三个位置上的立方的和是否等于这个数本身:请看代码:

		
		int m=0;
		for(int i=100;i<1000;i++) {
			int	a=(i%100)/10; //十位
			int	b=i%10;   //个位
			int	c=i/100;  //百位
			if((int)(Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3))==i) {
				System.out.println(i+"是水仙花");
				m++;
			}
		}
		
		System.out.println("水仙花数为"+m+"个!");

 

打印出结果为:

153是水仙花
370是水仙花
371是水仙花
407是水仙花
水仙花数为4个!

 

 

3.手写的冒泡排序法:

解:

原理:比较两个相邻的元素,将值大的元素交换至右端。

比如说一个数组里面存了5个int 类型的数,我们先做一次相邻的数比较,请看代码:

	    int a[]= {1,3,2,5,4};
		

		for (int i = 0; i < a.length-1; i++) {
			
			if(a[i]>a[i+1]) {//此时需交换 
				System.out.println("a["+i+"]"+a[i]+",a["+(i+1)+"]"+a[i+1]);
				int m=a[i+1];
				a[i+1]=a[i];
				a[i]=m;
				System.out.println("a["+i+"]"+a[i]+",a["+(i+1)+"]"+a[i+1]);
			}
		}
		

 

这是做了一次,把最大的数冒泡到最右端的,其他的依次类推,只要在外层加层循环就可以了,请看代码:

 

		int a[]= {1,3,2,5,4};
		
		for (int j = 0; j < a.length-1; j++) {
	

			for (int i = 0; i < a.length-1; i++) {
			
				if(a[i]>a[i+1]) {//此时需交换 
				System.out.println("a["+i+"]"+a[i]+",a["+(i+1)+"]"+a[i+1]);
				int m=a[i+1];
				a[i+1]=a[i];
				a[i]=m;
				System.out.println("a["+i+"]"+a[i]+",a["+(i+1)+"]"+a[i+1]);
				}
			}

		}
		System.out.println(Arrays.toString(a));

 

最后我们打印出结果为:

a[1]3,a[2]2
a[1]2,a[2]3
a[3]5,a[4]4
a[3]4,a[4]5
[1, 2, 3, 4, 5],完美解决了,其实这个代码还是可以优化下,比如说我们在内存循环的时候,并不需要每次循环到最后一个数,比如我们第二次循环时只需要比较前面4个数,除此之外,如果我们可以加一个变量,在做第一次比较时,如果没有必要冒泡,就直接退出循环。所以最终代码为:

		
		int a[]= {1,3,2,5,4};
		
		for (int j = 0; j < a.length-1; j++) {
	
			boolean flag = false;
			for (int i = 0; i < a.length-1-j; i++) {
			
				if(a[i]>a[i+1]) {//此时需交换 
				System.out.println("a["+i+"]"+a[i]+",a["+(i+1)+"]"+a[i+1]);
				int m=a[i+1];
				a[i+1]=a[i];
				a[i]=m;
				System.out.println("a["+i+"]"+a[i]+",a["+(i+1)+"]"+a[i+1]);
				flag=true;
				}
			}
			if(!flag) {
				break;
			}
		}
		System.out.println(Arrays.toString(a));

	}


 

 

 

用JAVA做的一个小题目 非常基础的一个小项目,是用JAVA的一些基本知识做的,希望对别人有帮助. 立即下载

相关推荐

java初学者小题目

java初学者的首选 做过之后都说好 首选

Java的小题目练习。

小题目

B_277的博客 1087

Java小题目

编程菜鸟做的几个Java小题目,系上课时的作业代码,写的很挫,请多指教

Java 经典小题篇

目录 一、前言 二、关于一个数是否素数 代码: 三、不死神兔 代码: 四、百钱百鸡 代码: 五、数组反转 代码: 一、前言 一直发关于知识点的相信你们已经乏味了,咱们今天换换口味,写几个小题目 二、关于一个数是否素数 代码: import java.util.Scanner; public class 是不是素数 { public static void main(String[] args) { int i=0; ......

weixin_60719453的博客 8729

Java 小项目 经典题目

十几个非常经典的Java小项目需求分析,很有针对性,适合初学者和学生。

OCR开发实战:如何用PaddleOCR C++版实现本地文字识别(附模型文件处理技巧)

本文详细介绍了如何使用PaddleOCR C++版实现本地文字识别,包括环境搭建、工程编译、运行时优化等全流程。重点讲解了在VS2019/VS2022环境下配置PaddleOCR的CPU推理性能优化技巧,以及模型文件处理的实际应用方法,帮助开发者高效完成OCR本地化部署。

devops8pract的博客 335

Java基础50道经典练习题

一、基础问答15题 1、【基本概念问答】 请问Java语言是跨平台的吗?JVM是跨平台的吗?为什么?答:Java语言是跨平台的,JVM是不跨平台的。Java能跨平台正是以JVM不跨平台为代价的。Java的跨平台性由JVM实现,即JVM用于保证java的跨平台的特性。原理分析:JVM是在机器和编译程序之间加入的一层抽象的虚拟机器,这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由 解释器 来将虚拟机代码转换为特定系统的机器码执行。在Java中

Code Writers 9429

当传统CFD遇上AI:PINN如何帮我们省下90%的仿真计算时间?

本文探讨了物理信息神经网络(PINN)在计算流体力学(CFD)中的应用,如何通过无网格方法节省90%的仿真计算时间。PINN将物理定律编码到神经网络中,显著减少传统CFD中的网格生成和计算时间,同时保持高精度。文章还对比了PINN与传统方法的性能,并讨论了其独特优势和当前局限。

weixin_32678995的博客 320

Java基础习题库

习题库

qq_61524266的博客 1万+

NTFS分区变成RAW别乱修!正确数据恢复与修复方法详解

文件系统是操作系统管理存储数据的核心机制,NTFS作为Windows主流文件系统,一旦分区识别异常,常会显示为RAW格式。分区变RAW通常意味着文件系统入口信息损坏,而非数据物理消失,但若采用错误的修复方式,如直接对RAW分区执行chkdsk /f,可能因系统无法正确识别文件系统结构,导致写入操作落在错误偏移位置,二次破坏本可恢复的数据。正确的处理思路是:先停止一切写入操作,通过扇区级镜像备份保留原始现场,再分析DBR、分区表及$MFT状态,依据诊断结果选择修复或深度扫描恢复。实际排查中,常见问题如DBR记

weixin_31155097的博客 134

深入CARLA地图底层:OpenDRIVE文件如何影响你的仿真效果与避坑指南

本文深入解析CARLA仿真中OpenDRIVE地图文件的核心作用,揭示其如何影响车道连接、交通规则和导航逻辑。通过实战案例和代码示例,提供五大典型地图问题的诊断与修复方案,帮助开发者优化仿真效果并规避常见陷阱。

weixin_34180452的博客 278

Java基础-Lesson3流程语句

①如果不配合break,将会从case到的地方顺次往下执行②byte,short,int,char,String(jdk7以后可以),enum(枚举)可以作为switch中的变量,long,float,double,boolean,其他引用类型都不可以作为switch中的变量、③default语句可以放到前面,但是要注意,如果放到前面,不要忘了加break。

m0_74235082的博客 864

自研SSD固件:从零实现固态硬盘底层存储控制系统

本文探讨了自主开发SSD固件的可行性及实现方案。分析表明,虽然NAND Flash控制协议标准化且存在开源参考实现,但开发仍面临FTL设计复杂度高、性能调优等挑战。推荐采用FPGA平台(如Xilinx Zynq-7000)搭配SLC NAND Flash的方案,预计开发周期9-12个月。系统采用分层架构设计,包含主机接口层、FTL层和闪存接口层,核心模块需实现NAND Flash底层驱动、地址映射管理和垃圾回收等功能。文中提供了关键数据结构和基础驱动代码示例,包括页读写、块擦除等操作。该方案着重解决NAND

电脑管家 1889

Lesson3-Java语言基础

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考以上就是对Java语言基础部分的第一部分。后续是流程控制、字符串、数组、类和对象、包装类、数字处理类…的学习。

rushberry的博客 230

从原理到实践:详解双目散斑结构光的生成与优化

本文深入解析了双目散斑结构光的生成原理与优化实践,详细介绍了散斑结构光的抗干扰性、空间编码技术及其在三维视觉中的应用。通过对比不同生成方法和技术路线,提供了参数调优指南和工程实现细节,帮助开发者掌握高效、精准的散斑生成技术。

weixin_42521856的博客 591

手教你如何使用Simulink和相关工具箱模拟和实现无人机的多机接力信号中继的建模

扩大通信范围:单架无人机的通信能力有限,通过多机接力的方式可以显著扩展通信覆盖范围。提高可靠性:当某架无人机出现故障或电量不足时,其他无人机可以接管其任务,确保通信不中断。适应复杂环境:在山区、森林等复杂地形中,多机接力可以绕过障碍物,建立稳定的通信链路。使用Communications Toolbox中的模块来模拟无线通信链路。例如,可以使用模块模拟噪声信道,或者使用模块计算信号衰减。matlab深色版本。

MHD0815的博客 767

Java SE Lesson3

1.     接口中所声明的方法都是抽象方法。接口中的方法都是public的。 2.     接口中也可以定义成员变量。接口中的成员变量都是public、final、static的。 3.     一个类不能既是final的,又是abstract的。因为abstract的主要目的是定义一个约定,让子类去实现这种约定,而final表示该类不能被继承,这样abstract希望该类被继承而final

Andy_Hanna的专栏 503

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java基础-Lesson1环境初始

本篇参考https://www.cnblogs.com/jmsjh/p/7808764.html,关于C语言为什么不能跨平台的细节①win + r + cmd ,一般来说打开命令行以后,就进入了当前用户的用户目录②在导航栏直接输入cmd回车③在目录中按住shift键点右键,在此打开命令窗口注:window下dos命令不区分大小写,文件夹、文件名称也不区分大小写可以用Tab键补全dir //显示当前目录中的内容 >dir > filelist.txt //将dir出来的内容,写入到一个

m0_74235082的博客 1160

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JaveSE: Lesson1:Java概述

1. Java概述 1.1 Java语言发展史(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言 Java之父:詹姆斯·高斯林(James Gosling) 2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com 当前,我们课程使用的JDK版本:11.0 1.2 Java语言跨平

哔哔小鸡 560

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java_1Lesson

cmd使用 进入硬盘分区:D: E: F: 查看目录 dir 进入文件夹 “cd 文件名” .使用javac编译器编译运行。   Javac 文件名 运行java程序 Java 文件名 第一个程序 public class hello { public static void main(String[] arg) { S...

dh7995的博客 152

Java基础-Lesson2基础语法

二进制变量:以0b开头(大小写均可),比如 int a = 0b1010;八进制变量:以0开头,比如 int a = 01234;十六进制:以0x开头(大小写均可),比如 int a = 0x1234;在定义变量的时候可以使用“_”进行划分,但不参与编译,比如 int a = 0b10_111_100;

m0_74235082的博客 926

lesson2:java基础系列之运算符

1、定义:用来指明操作数的的运算方式 2、分类:有两种分类方式,按照操作数数目可分为单目、双目和三目;我们这里用第二种分类方式来总结即按功能划分。 a.算术运算符 如:+ -*/%... b.赋值运算符 如:= += /= c.关系运算符(比较) 如:> < ... d.逻辑运算符 如:& && .. e.位运算符 如 我准备通过代码和注...

android_seven的博客 212

#CDA网校python之基础lesson3:Pandas②

不要学习伪代码了!!先进来看看这篇!!!要想语言好,符号不能少!!!

m0_54622332的博客 1581

Java语言基础Lesson1

1、下载和安装JDK和IDEAJDK:一路下一步,尽量安装在C盘,一定不要用中文名称---安装好即可IDEA:一路下一步,在create desktop shotcut处将64- bit lauchchar 打勾,以创建桌面快捷方式2、Java开发环境#编译运行过程:编译期:Java源文件,经过编译,生成.class字节码文件。运行期:JVM加载.class 并运行.class (0和1)特点:跨平台、一次编程到处使用#名词解释:JVM:Java虚拟机作用:加载.class并运行.classJRE: Jav

Klaus_originals的博客 182

Java基础-Lesson4函数和数组

/用初始化列表直接初始化int [] d;//不管是一维还是多维数组,在 = 左边不用定义长度//用了初始化列表就不用再指明长度int [] d;//用这样的初始化列表,必须在定义的时候直接写数组中存放的变量的数据类型可以是 int short byte char。

m0_74235082的博客 600
上一篇: lesson2:java基础系列之运算符
下一篇: android开发小技巧-模拟器设置
android_seven
博客等级 码龄11年 8粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值