javaSE_Java第一周总结:有难度题目集合
第一周练习总结
说明:尽量采用多种做法解决
1.使用三种方法实现变量交换
public class Test1Change{
public static void main(String[] args){
//1.使用三种方法实现变量交换
int a=1;
int b=2;
//1)第三方变量实现交换
/*
int c=a;
a=b;
b=a;
*/
//2)数学运算实现交换
/*
a=a+b;
b=a-b;
a=a-b;
*/
//3)位运算实现交换
a=a^b;
b=a^b;
a=a^b;
System.out.println("a="+a);
System.out.println("b="+b);
}
}
2.设计一个实验证明&和&&的区别
public class Test2Prove{
public static void main(String[] args){
//设计一个实验证明&和&&的区别
//方法一:使用自增自减实现
int a=2;
int b=3;
//若后面运算了,那么a应该为3,若为2,说明未运算
System.out.println(a>b&&a++>b);
System.out.println(a);
//若后面运算了,那么b应该为4,若为3,说明未运算
System.out.println(a>b&a>b++);
System.out.println(b);
//方法二:用分母不为0做
//若后面运行则会报错:Exception in thread "main" java.lang.ArithmeticException: / by zero,意思是分母不能为0
//若后面不运行,则不会报错
System.out.println(1>2&&2>(5/0));
System.out.println(1>2&2>(5/0));
}
}
3.从键盘录入输入3 个数a,b,c,按从大到小进行输出
public class Test3Sort{
public static void main(String[] args){
//3.从键盘录入输入3 个数a,b,c,按从大到小进行输出
int a=3,b=6,c=5;
//方法一:
int max=a>b?a:b;
max=max>c?max:c;
int min=a<b?a:b;
min=min<c?min:c;
//获取mid方法一
/*
int mid=(a+b+c)-max-min;
*/
//获取mid方法二
int mid;
if(a<max&&a>min){
mid=a;
}else{
mid=(b<max&&b>min)?b:c;
}
System.out.println("a,b,c三个数由大到小排列为:"+max+" "+mid+" "+min);
//方法二:不需要定义三个变量,但过程复杂,穷举法
if(a>=b){
if(b>=c){
//a>=b b>=c
System.out.println("三个数从大到小排列:"+a+" "+b+" "+c);
}else{
//a>=b c>=b
if(a>=c){
System.out.println("三个数从大到小排列:"+a+" "+c+" "+b);
}else{
//a>=b c>=a
System.out.println("三个数从大到小排列:"+c+" "+a+" "+b);
}
}
}else{
//b>=a
if(a>=c){
//b>=a a>=c
System.out.println("三个数从大到小排列:"+b+" "+a+" "+c);
}else{
//b>=a c>=a
if(b>=c){
//b>=c c>=a
System.out.println("三个数从大到小排列:"+b+" "+c+" "+a);
}else{
//c>=b c>=a b>=a
System.out.println("三个数从大到小排列:"+c+" "+b+" "+a);
}
}
}
//方法二改版:最外层先获取最大值,第二层再获取第二大值,更好理解,穷举法
if(a>=b&&a>=c){
if(b>=c){
System.out.println("三个数从大到小排列:"+a+" "+b+" "+c);
}else{
System.out.println("三个数从大到小排列:"+a+" "+c+" "+b);
}
}else if(b>=a&&b>=c){
if(a>=c){
System.out.println("三个数从大到小排列:"+b+" "+a+" "+c);
}else{
System.out.println("三个数从大到小排列:"+b+" "+c+" "+a);
}
}else{
if(a>=b){
System.out.println("三个数从大到小排列:"+c+" "+a+" "+b);
}else{
System.out.println("三个数从大到小排列:"+c+" "+b+" "+a);
}
}
}
}
4.模拟ATM取款机的三次密码校验,当天达到3次输入密码错误,则提示“账号被冻结”,其他情况则提示还有多少次输入机会
注意:如果3次均输错,提示:账号已被冻结
如果1次或2次输错后退出,提示:欢迎下次再来
如果输对了密码,提示:随便取款
import java.util.*;
public class Test4ATM{
public static void main(String[] args){
//4.模拟ATM取款机的三次密码校验,当天达到3次输入密码错误,
//则提示“账号被冻结”,其他情况则提示还有多少次输入机会
Scanner input=new Scanner(System.in);
int count=3;//剩余的机会
String str;
do{
System.out.println("请输入密码:");
int password=input.nextInt();
if(password==1234){
System.out.println("密码正确,请随便取款!");
break;
}else{
count--;
if(count<1){
System.out.println("账号已被冻结,请携带身份证去银行办理");
break;
}else{
System.out.println("密码错误,还剩余"+count+"次机会。如果继续请输入y,退出请按其他任意键:");
str=input.next();
if(!str.equals("y")){
System.out.println("欢迎下次再来!");
break;
}
}
}
}while(str.equals("y"));
}
}
5.做一个剪刀石头布的对战小程序
import java.util.*;
public class Test5Game{
public static void main(String[] args){
//5.做一个剪刀石头布的对战小程序
Scanner input=new Scanner(System.in);
System.out.println("经典游戏:剪刀石头布");
System.out.println("游戏规则:1代表剪刀,2代表石头,3代表布");
int computer=(int)(Math.random()*3)+1;
//问题核心:剪刀与布的比较
//方法一:穷举法
System.out.println("请出拳:");
int me=input.nextInt();
switch(me){
case 1:
if(computer==1){
System.out.println("你们战平了,电脑出的剪刀!");
}else if(computer==2){
System.out.println("你输了,电脑出的石头!");
}else{
System.out.println("你赢了,电脑出的布!");
}
break;
case 2:
if(computer==1){
System.out.println("你赢了,电脑出的剪刀!");
}else if(computer==2){
System.out.println("你们战平了,电脑出的石头!");
}else{
System.out.println("你输了,电脑出的布!");
}
break;
case 3:
if(computer==1){
System.out.println("你输了,电脑出的剪刀!");
}else if(computer==2){
System.out.println("你赢了,电脑出的石头!");
}else{
System.out.println("你们战平了,电脑出的布!");
}
break;
}
//方法二
if(computer==1&&me==3||computer==3&&me==1){
if(computer==1&&me==3){
System.out.println("你输了,电脑出的"+computer+"!");
}else{
System.out.println("你赢了,电脑出的"+computer+"!");
}
}else if(computer==me){
System.out.println("你战平了,你们出的一样!");
}else{
if(computer<me){
System.out.println("你赢了,电脑出的"+computer+"!");
}else{
System.out.println("你输了,电脑出的"+computer+"!");
}
}
}
}
6.素数也叫质数.是除了1和其本身,不能被其他正整数整除的正整数.1不是素数.
a)例如:2,3,5,7,11,13,17,19,23…..
a)写一个方法判断该数是否为素数(设计成一个方法 返回类型boolean)
b)输出某个范围内的所有素数,比如100-200之间。
public class Test2SuShu{
public static void main(String[] args){
/*
if(false){
System.out.println("搞不定");
}
*/
/*
for(int i=1;i<=20;i++){
//如果是素数,就把他打印出来
//if(isSuShu(i) == true){
if(isSuShu(i)){
System.out.print(i+" ");
}
}
*/
showSuShu(20,1);
}
public static void showSuShu(int start,int end){
//start>end 交换
for(int i=start;i<=end;i++){
//如果是素数,就把他打印出来
//if(isSuShu(i) == true){
if(isSuShu(i)){
System.out.print(i+" ");
}
}
}
public static boolean isSuShu(int n){
//素数也叫质数.是除了1和其本身,
//不能被其他正整数整除的正整数.
//1不是质数也不是合数
if(n == 1){
return false;
}
//6 2-5
//在2到当前数-1的范围内
for(int i=2;i<=n-1;i++){
//只要有一个数能被整除
if(n%i == 0){
//说明不是素数
return false;
}
}
//遍历结束之后
//还是没有其他的数可以被整除
//说明是素数
return true;
}
}
7.数组的查找(两种:普通法,二分法);.数组排序(两种:冒泡排序,选择排序)
import java.util.Arrays;
public class Test6Search{
public static void main(String[] args){
//7.数组的查找(两种:普通法,二分法)
int[] arr={2,6,1,5,9,23};
int num=6;
//普通法查找
for(int i=0;i<arr.length;i++){
if(num==arr[i]){
System.out.println("要查询的数"+num+"是数组中的第"+(i+1)+"个");
}
}
//二分法查找:必须是有序数组
//8.数组排序(两种:冒泡排序,选择排序)
//冒泡排序
/*
for(int j=0;j<arr.length-1;j++){
for(int i=0;i<arr.length-1-j;i++){
if(arr[i]>arr[i+1]){
arr[i]=arr[i+1]+arr[i];
arr[i+1]=arr[i]-arr[i+1];
arr[i]=arr[i]-arr[i+1];
}
}
}
*/
//二分法查找
int max=arr.length-1;
int min=0;
int mid=(max+min)/2;
for(int i=1;i<arr.length;i++){
if(arr[mid]==num){
System.out.println("要查询的数"+num+"是数组中的第"+(mid+1)+"个");
break;
}else if(arr[mid]>num){
max=mid-1;
}else{
min=mid+1;
}
mid=(max+min)/2;
}
//选择排序
/*
for(int j=0;j<arr.length-1;j++){
int index=j;
for(int i=j+1;i<arr.length;i++){
if(arr[index]>arr[i]){
index=i;
}
}
int temp=arr[j];
arr[j]=arr[index];
arr[index]=temp;
}
*/
System.out.println(Arrays.toString(arr));
}
}
javaSE_Java第一周总结:有难度题目集合的更多相关文章
- java开学第一周测试自我感想
开学第一周,王建民老师就对我们进行了java测试,对我们说测试题目是基于期末考试的基础难度来出的.我们的考试完全是靠暑假在家自学的基础,如果在家没有自学java,那完全就是看不懂试卷到底要考什么.由于 ...
- C语言程序设计II—第一周教学
第一周教学总结(25/2-3/3) 教学内容 开学谈心 测验数据类型.运算符与表达式的自学情况,并讲解测验题目 第七章 数组 7.1 一维数组 课前准备 在蓝墨云发布资源:回顾数据类型与表达式测试活动 ...
- STL 入门 (17 暑假集训第一周)
快速全排列的函数 头文件<algorithm> next_permutation(a,a+n) ---------------------------------------------- ...
- Surprise团队第一周项目总结
Surprise团队第一周项目总结 团队项目 基本内容 五子棋(Gobang)的开发与应用 利用Android Studio设计一款五子棋游戏,并丰富其内涵 预期目标 实现人人模式:2个用户可以在同一 ...
- 20145206邹京儒《Java程序设计》第一周学习总结
20145206 <Java程序设计>第1周学习总结 教材学习内容总结 1.三大平台:Java SE.Java EE与Java ME.Java SE是各应用平台的基础,分为四个主要的部分: ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 201521123093 java 第一周总结
201521123093 <Java程序设计> 第一周学习总结 1.本周学习总结 (1)第一次开始接触java语言,java的用法和C不太一样.在编程序时语句比以前的长. (2)学会了使用 ...
- 201521044152<java程序设计>第一周学习总结
本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...
- 20175226 2018-2019-2《java程序设计》结对编程-四则运算(第一周-阶段总结)
结对编程-四则运算(第一周-阶段总结) 需求分析 实现一个四则运算程序,要求: 自动随机生成小学四则运算题目(加,减,乘,除) 支持整数.真分数且支持多项式 能够利用栈的思想,将中缀转换为后缀表达式 ...
随机推荐
- 初学grunt压缩
初学grunt 压缩,做个记录.备忘. [JS压缩] 先比较yui compressor 与 uglify 代码压缩, yui compressor,使用起来很简单.需要jdk. https://g ...
- 透视I/O多路复用
透视I/O多路复用 我写的不是select这些函数的教学,需要了解的请自行Google或者去man,这些是帮助我理解函数的封装之下的道理. 需要回答的问题 I/O准备好了指什么?什么叫I/O已经可读/ ...
- CF #244 D. Match & Catch 后缀数组
题目链接:http://codeforces.com/problemset/problem/427/D 大意是寻找两个字符串中最短的公共子串,要求子串在两个串中都是唯一的. 造一个S#T的串,做后缀数 ...
- java构造代码块,构造函数和普通函数的区别和调用时间
在这里我们谈论一下构造代码块,构造函数和普通函数的区别和调用时间.构造代码块:最早运行,比构造函数运行的时间好要提前,和构造函数一样,只在对象初始化的时候运行.构造函数:运行时间比构造代码块时间晚,也 ...
- yum仓库
1.概念: Yum仓库则是为进一步简化RPM管理软件难度而设计的,Yum能够根据用户的要求分析出所需软件包及其相关依赖关系,自动从服务器下载软件包并安装到系统 yum的工作原理:执行yum命令――&g ...
- Hibernate学习--hibernate延迟加载原理(动态代理)
在正式说hibernate延迟加载时,先说说一个比较奇怪的现象吧:hibernate中,在many-to-one时,如果我们设置了延迟加载,会发现我们在eclipse的调试框中查看one对应对象时,它 ...
- C语言学习第二章
今天开始学习常量,变量,基本数据类型,printf()函数和scanf()函数,算术运算符. 首先常量:是在程序中保持不变的量 变量:编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修 ...
- 八种创建等高列布局【出自w3c】
高度相等列在Web页面设计中永远是一个网页设计师的需求.如果所有列都有相同的背景色,高度相等还是不相等都无关紧要,因为你只要在这些列的父元素中设置一个背景色就可以了.但是,如果一个或多个列需要单独设置 ...
- ZJOI2017 day1滚粗记
这几天去温州作为外省选手参加了$ZJOI day1$.打了几天的酱油,考试也滚粗了.. $day -2$ 中午从学校出发,坐飞机去温州.到了温州以后吃完晚饭就回宾馆.把一直想做的糖果公园做完了以后就堕 ...
- 优化UI控件 【译】
翻译自:https://unity3d.com/cn/learn/tutorials/topics/best-practices/optimizing-ui-controls?playlist=300 ...