Java学习、简单代码编译

【2.1】求明天是星期几

public class study {
public static void main(String args[])
{
short i=7;
short tomorrow,yesterday;
tomorrow = (short) ((i+1) % 7);
yesterday = (short)((i-1+7) % 7);
System.out.print(“tomorrow:”+tomorrow+" “+”\n");
System.out.print(“yesterday:”+yesterday);
}
}
【2.2】判断一个年份是否为闰年
public class study {
public static void main(String args[])
{
int year = 2020;
boolean leap = year%4000||(year%100!=0&&year%40); //先计算表达式,再赋值
System.out.println(year+" is a leap year? "+leap);
}
}

【2.3】Fibonacci数列

public class Fibonacci {
public static void main(String args[])
{
short i=0,j=1;
do
{
System.out.print(" “+i+” "+j);
i = (short)(i+j); //两个short整数运算后结果使int类型,类型强制转换后才能赋值
j = (short)(i+j);
}while(i>0); //short整数溢出时循环停止,不是死循环
System.out.println();
}
}
【2.4】求一个日期是星期几

public class study {
public static void main(String args[])
{
int year = 2020, month = 9, day = 1;
boolean leap = year%4000||year%40&&year%100!=0; //判断闰年
int total = year-1980+(year-1980+3)/4; //求平(闰)年累计的总天数
for (int i = month-1;i>0;i–) //计算当年前n-1个月累计的天数
switch(i)
{
case 1:case 3:case 5:case 7:case 8:case 10:total+=31;break;
case 4:case 6:case 9:case 11:total+=30;break;
case 2:total+=leap?29:28;
}
total+=day; //当月的天数
int week = 1; //起始日1979-12-31是星期一
week = (week+total)%7; //求得星期几
System.out.print(year+“年”+month+“月”+day+“日 星期”);
switch(week)
{
case 0:System.out.print(“日”);break;
case 1:System.out.print(“一”);break;
case 2:System.out.print(“二”);break;
case 3:System.out.print(“三”);break;
case 4:System.out.print(“四”);break;
case 5:System.out.print(“五”);break;
case 6:System.out.print(“六”);break;
}
}
}

【2.5】用一维数组表示Fibonacci数列

public class study {
public static void main(String args[])
{
int n = 25,i, fib[]= new int[n];
fib[0]=0;
fib[1]=1;
for(i=2;i<n;i++)
fib[i]=fib[i-1]+fib[i-2];
for(i=0;i<fib.length;i++)
System.out.print(" "+fib[i]);
System.out.println();
}
}

【2.6】幻方

public class study {
public static void main(String args[])
{
int n = 3, mat[][]=new int[n][n]; // n是阶数
int i=0,j=n/2; //i和j作为下标,首个数放在第一行中间位置
for(int k=1;k<=n*n;k++) //k是自然数
{
mat[i][j]=k; //当前位置取值
if(k%n==0) //对角线已满
i=(i+1)%n; //下一位置像下一行
else
{
i=(i-1+n)%n; //下一位置向右上方
j=(j+1)%n;
}
}
for(i=0;i<mat.length;i++) //输出二维数组
{
for(j=0;j<mat[i].length;j++)
System.out.print(mat[i][j]+"\t");
System.out.println();
}
}
}

【2.7】一维整数数组排序

public class study {
public static int[] random(int n,int max) //产生n个0~max之间的随机数,返回一维数组
{
int value[] =new int[n];
for(int i=0;i<value.length;i++)
value[i] = (int)(Math.random()*max); //random()返回一个0~1的double随机数
return value;
}

public static void print(int value[])    //输出一维数组元素,数组作为参数
{for(int i=0;i<value.length;i++)System.out.print("  "+value[i]);System.out.println();
}//选择直接排序。数组作为引用类型参数,实际参数的元素值将被改变
public static void selectsort(int value[])
{for(int i=0;i<value.length-1;i++)    //n-1趟排序{int min=i;for(int j=i;j<value.length;j++)    //在从value[i]开始的部分数组元素中if(value[j]<value[min])       //寻找最小值min = j;                 //min记录下本趟最小值的下标if(i!=min){int temp=value[i];    //本趟最小值交换到左边value[i]=value[min];value[min]= temp;}}
}   //设X.Y数组已按升序排序,merge()方法将两者合并成一个排序数组返回,一次归序算法
public static int[] merge(int X[],int Y[])
{int Z[]=new int[X.length+Y.length], i=0,j=0,k=0;while (i<X.length&&j<Y.length)    //将X中两个相邻子序列归并到Y中{if(X[i]<Y[i])    //较小值复制到Y中Z[k++]=X[i++];else Z[k++]=Y[j++];}while(i<X.length)      //将前一个子序列剩余元素复制到X中Z[k++]=X[i++]; while(j<Y.length)     //将后一个子序列剩余元素复制到Y中Z[k++]=Y[j++];return Z;
}
public static void main(String args[])
{int n1=7,max1=100;int table1[] = random(n1,max1);System.out.print("table1:");print(table1);selectsort(table1);System.out.print("sorted table1:");print(table1);int table2[] = random(n1,max1);System.out.print("table2:");print(table2);selectsort(table2);System.out.print("sorted table2:");print(table2);System.out.print("merge:");print(merge(table1,table2));
}

}

【2.8】杨辉三角

public class study {
public static int[][] yanghui(int n) //求n行杨辉三角,返回二维数组
{
int mat[][] = new int[n][]; //申请第一维的存储空间
for (int i=0;i<n;i++)
{
mat[i] = new int[i+1]; //申请第二维的存储空间
mat[i][0]=mat[i][i]=1;
for(int j=1;j<i;j++)
mat[i][j]=mat[i-1][j-1]+mat[i-1][j];
}
return mat; //返回二维数组引用
}
public static void print(int mat[][]) //输出二维数组
{
for(int i=0;i<mat.length;i++)
{
for(int j=0;j<mat[i].length;j++)
System.out.print(" "+mat[i][j]);
System.out.println();
}
}
public static void main(String args[])
{
print(yanghui(10));
}
}

【2.9】求Fibonacci数列第n项的递归方法。

public class study {
public static int fibonacci(int n) //求Fibonacci数列的第n项,递归方法
{
if(n<0)
return -1;
if(n0||n1)
return n;
return fibonacci(n-2)+fibonacci(n-1);
}
public static void main(String args[])
{
System.out.print(fibonacci(10));
}
}

【2.10】从标准输入流中读取一行字符串,再转换成整数。(两个类)

public class Input{
//从标准输入流中读取一行字符串返回,以回车换行符结束
public static String readLine() throws java.io.IOException //抛出IO异常
{
System.out.print(“输入一行字符串,以回车换行符结束:”);
byte buffer[] = new byte[512]; //以字节数组作为缓冲区
int count = System.in.read(buffer); //从标准输入流读字节到缓冲区buffer,返回读取字节数
System.in.close(); //关闭标准输入流
return(count==-1)?null:new String(buffer,0,count-2); //若只输入Ctrl+Z,
//关闭标准输入流,则count==-1,返回null;若只输入回车换行符,则count==2,返回空串“”;
//否则,返回由buffer数组种从0开始count-2字节构造的串,不计回车换行符
}
public static void main(String args[])throws java.io.IOException //抛出IO异常交java虚拟机处理
{
String s=readLine(); //从标准输入流中读取一行字符串
int value = MyInteger.parseInt(s); //将字符串s转换成整数,自动识别进制
System.out.println(“MyInteger.toString(”+value+",2)="+MyInteger.toString(value,2));
System.out.println(“MyInteger.toString(”+value+",16)="+MyInteger.toString(value,16));
}
}

public class MyInteger {
//返回将字符串s转换的整数,自动识别进制,十、八、十六进制分别以正负号及1~9/0、0x开头。。若s不能转换成整数,则抛出数值格式日常
public static int parseInt(String s)throws NumberFormatException
{
if(snull)
throw new NumberFormatException(“null”); //抛出数值格式异常
char ch=s.charAt(0); //获得首字母,识别进制
int value=0,i=0,sign=1,radix;
if(ch>=‘1’&&ch<=‘9’||ch
’+’||ch==’-’) //十进制以正负号及1~9开头
{
radix=10;
if(ch==’+’||ch==’-’) //跳过正负号,只有十进制可输入±
i++; //i记住当前字符序号
sign=ch==’-’?-1:1; //识别正负号,记住正负数标记
}
else if(ch==‘0’&&s.charAt(1)!=‘x’) //八进制以0开头
{
radix=8;
i++;
}
else if(ch==‘0’&&s.charAt(1)‘x’) //十六进制以0x开头
{
radix=16;
i+=2;
}
else throw new NumberFormatException(“整数不能识别’”+ch+"'字符");
while(i<s.length()) //获得无符号整数绝对值
{
ch=s.charAt(i++);
if(ch>=‘0’&&ch-‘0’<radix) //当radix<=0时,radix只需识别数字0~radix-1
value=value*radix+ch-‘0’; //value记住当前获得的整数值
else if(radix
16&&ch>=‘a’&&ch<=‘f’)
value=valueradix+ch-‘a’+10; //十六进制还需转换’a’到’f’表示的整数值
else if(radix==16&&ch>=‘A’&&ch<=‘F’)
value=value
radix+ch-‘A’+10;
else throw new NumberFormatException(radix+“进制整数不能识别’”+ch+"'字符");
}
return value*sign; //返回有符号整数值
}

//返回整数value的radix进制字符串,radix取值为2,4,8,16,采用位运算
public static String toString(int value,int radix)
{if (radix==10)return value+"";             //返回将value值转换成十进制的字符串if(radix==2||radix==4||radix==8||radix==16){int mask,n=0;        //mask获得radix进制的最大数字for(mask=radix-1;mask>0;mask>>>=1)n++;        //n获得mask的二进制位数,即2"=radixmask=radix-1;char buffer[]=new char[(int)(32.0/n+0.5)];   //存储一个int表示为radix的各位for(int i=buffer.length-1;i>=0;i--){                   //除radix取余法,余数存入buffer字符数组(逆序),高位补0int bit=value&mask;      //获得radix进制的个位数字buffer[i]=(char)(bit<=9?bit+'0':bit+'a'-10);     //将0~9、10~15转换为‘0’~‘9’、‘a'~'f'value>>>=n;     // 右移n位,高位补0,即value除以radix				}return new String(buffer);      //返回由字符数组构造的字符串}throw new IllegalArgumentException("radix参数值"+radix+"表示的进制无效。");     //无效参数异常
}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java学习:类的封装、继承和多态

【3.1】声明日期类及使用日期对象 public class MyDate{ //类声明 int year,month,day; //成员变量&#xff0c;表示年月日 void set(int y,int m,int d) //成员方法、设计日期值 { yeary; monthm; dayd; } void set(MyDate d) //将当前对象值设置为参数值&#xff0c;重载 { …

同步器 java_您可能不知道的五个高级Java同步器

同步器 java除了基于每个Java对象具有的锁定位的通用同步外&#xff0c;您还可以使用Java中更复杂的同步器&#xff0c;例如&#xff1a; 信号量 –使用许可的概念表示一个位置中允许的最大线程数。 当使用值1时&#xff0c;其行为类似于同步&#xff0c;也称为二进制信号量。…

Java语言学习概述

md:创建新的文件夹 上面这行作用&#xff1a;将name&#xff1a;Tom,age12写入到文件1.doc中&#xff0c;也就是说先建个文档&#xff0c;再把这句话写进去。 del *.txt 作用&#xff1a;删除以txt结尾的所有文件 rd team2 作用&#xff1a;删除team2文件夹&#xff08;且这…

在CDI应用程序中使用@Alternative

在许多情况下&#xff0c;您可能希望拥有一个以上版本的Bean&#xff0c;并将其用于不同的目的。 备用bean的典型理由是出于测试目的&#xff0c;其中备用bean提供模拟数据。 为了获得实时数据&#xff0c;“真实” bean必须连接到的实时系统的好处是远程&#xff0c;或者在测试…

小狐狸ChatGPT付费创作系统 前端对话提示undefined index:temperature解决方法

很多会员使用着ChatGPT付费创作系统&#xff0c;特别是新安装系统后前端输入对话时提示错误undefined index:temperature&#xff0c;检查了反代、检查了KEY均正常&#xff0c;这问题主要是因为后台设置里新用户免费送对话次数为空&#xff0c;没设置赠送次数原因&#xff0c;导…

第二章 Java基本语法(一)

本文主要内容&#xff1a; 关键字、标识符、变量、类型转换、进制转换、运算符 一、关键字 二、标识符 比如&#xff1a;类名&#xff0c;变量名&#xff0c;方法名&#xff0c;接口名&#xff0c;包名。。。 小技巧&#xff1a;直接在我的电脑输入cmd&#xff0c;就可以打开…

第二章 Java基本语法(二)

本文主要内容&#xff1a; 运算符、if-else、switch-case 一、位运算符 运算符之五&#xff1a;位运算符 每左移一位&#xff0c;相当于是在原来的基础上乘2. int i 21; System.out.println(“i<<2:”(i<<2)); 输出&#xff1a;i<<2:84 结论&#xff1a; …

java 断点_每个Java开发人员应拥有的持久断点

java 断点当开发人员使用Java进行工作时&#xff0c;即使您尝试调试其他内容&#xff0c;也总是会遇到一些失败的情况。 这是应该在每个IDE中启用的持久断点的列表。 &#xff08;恕我直言&#xff09; 是的&#xff0c;从理论上讲&#xff0c;您应该能够从良好的日志记录实现…

第二章 Java基本语法(三)

本文主要内容&#xff1a; 循环结构、特殊关键字break和continue的使用&#xff0c;质数问题的优化 循环结构&#xff1a;Boolean类型 程序编写&#xff1a; 从键盘输入两个正整数m和n&#xff0c;找出他们的最大公约数和最小公倍数。 import java.util.Scanner; public clas…

用Priam设置Cassandra

前面已经解释了如何在AWS中设置Cassandra 。 所描述的设置有效&#xff0c;但在某些情况下可能还不够。 例如&#xff0c;它不能为您提供制作和还原备份的简便方法&#xff0c;添加新节点依赖于自定义python脚本&#xff0c;该脚本会随机选择一个种子。 因此&#xff0c;现在我…

Matlab入门(一)

MATLAB学习笔记 本系列主要内容来源&#xff1a;matlab官方付费课程的学习笔记 截图较多&#xff0c;之后更新会尽量增加文字说明 matlab简单常用的命令 数组 round:四舍五入函数。

MATLAB入门(二)

可以使用 plot 函数在一张图上绘制两个相同长度的向量。 plot(x,y)plot 函数接受一个附加参数。使用该参数&#xff0c;您可以通过在引号中包含不同符号的方式来指定与之对应的颜色、线型和标记样式。 plot(x,y,"r--o")以上命令将会绘制一条红色 虚线 (–)&#x…

Spring @Lazy批注用例

Spring框架几乎可以毫不费力地为您解决许多常见的编程问题&#xff0c;但是它的某些功能比其他功能鲜为人知。 在本文中&#xff0c;我们将仔细研究属于该组的Lazy批注。 阅读了几个示例之后&#xff0c;您应该能够将注释应用于日常开发任务。 1. 懒豆初始化 Spring的默认行为…

MATLAB入门(三)

求平均值 两种方法生成列向量 读取文件 将数据保存到小数点后两位 result round(M,2);将矩阵中的每个元素都三次方 x3 x.^3将矩阵中的数据按照升序排序 sort(data)创建一个行变量计算每一个列变量的平均值 avg mean(data)diff函数 Y diff(X) 计算沿大小不等于 1…

Java学习 第三章 数组(一)一维数组

第三章 数组 3-1 数组的概述 数组&#xff1a;多个相同类型数据按一定的顺序排列的集合&#xff0c;并使用一个名字命名&#xff0c;并通过编号的方式对这些数据进行统一管理。 数组相关概念&#xff1a; 数组名、下标&#xff08;索引、角标&#xff09;、元素、数组的长度 数…

mapreduce 算法_MapReduce算法–了解数据联接第1部分

mapreduce 算法在本文中&#xff0c;我们继续执行一系列实现算法的系列&#xff0c;该算法在使用MapReduce进行数据密集型文本处理中找到&#xff0c;这一次讨论数据联接。 虽然我们将讨论在Hadoop中联接数据的技术并提供示例代码&#xff0c;但在大多数情况下&#xff0c;您可…

几个有用的word小技巧,保准提升效率~

这几天改报告改到头秃。年底了&#xff0c;实验室各种项目在结项&#xff0c;作为一名研一新生&#xff0c;理所应当地承担起了体力活的工作。主要负责项目报告的研究背景调研、报告汇总、格式调整等。 格式调整&#xff0c;看起来非常简单的一项工作&#xff0c;却是最费时费…

Java 8:长期支持的堡垒

斯蒂芬科尔本 &#xff08; Stephen Colebourne &#xff09;的文章“ Java 9可以使用六个星期 ”开始&#xff0c;“ Java 9仅仅六个星期 就已过时。” Colebourne参考了Mark Reinhold博客文章“ Moving Java Forwarding Faster ”&#xff0c;并写道&#xff1a;“新的Java发…

我的2020(年终总结)

我的2020 2020对每个人来说可能都是极不平凡的一年&#xff0c;对我尤其是。这一年我整个的人心境发生了极大的变化。总结来说&#xff0c;有这么几件大事&#xff1a;复试、毕设、大学毕业、研究生开学、分手、再脱单、疫情在家。今天坐在实验室也不知道该干点什么&#xff0…

Java学习 第三章 数组(二)多维数组

多维数组的使用 由数组构成的数组 二维数组&#xff1a; ① 二维数组的声明和初始化 ② 如何调用数组的指定位置的元素 ③ 如何获取数组的长度 ④ 如何遍历数组 ⑤ 数组元素的默认初始化值 &#xff1a;见ArrayTest1.java 数组元素是整形&#xff1a;0 数组元素是浮点型&…