练习
九九乘法表+字符大小写转换
import java.util.Scanner;
public class test{
public static void main(String args[]){
JJCFB j=new JJCFB();
j.打印乘法表();
j.打印n阶乘法表方法();
TestDemo.改变符号方法();
}
}
class TestDemo{
static public void 改变符号方法(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字母:");
String s = sc.next();
char c = s.charAt(0);
int n=(int)c;
System.out.println("您输入的符号为:"+c+"对应ASCII码为"+n);
if(n>=97&&n<=122){
System.out.println("您输入的字母为 小写:"+c);
System.out.println("其对应的字母为"+(char)(n-32));
}else if(n>=65&&n<=90){
System.out.println("您输入的字母为 大写:"+c);
System.out.println("其对应的小写为"+(char)(n+32));
}else{
System.out.println("您输入的不是英文字母");
改变符号方法();
}
}
}
class JJCFB
{
public void 打印乘法表(){
int i,j;
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++){
System.out.print(j+"x"+i+"="+j*i+"\t");
}
System.out.println();
}
}
static public void 打印n阶乘法表方法(){
Scanner sc = new Scanner(System.in);
System.out.println("打印n阶乘法表方法\n"+"请输入n:");
int n=sc.nextInt();
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++){
System.out.print(j+"x"+i+"="+j*i+"\t");
}
System.out.println();
}
}
}
用不规则数组打印九九乘法表
/**
*create by lijie
*create date 2020/09/28
*/
public class A
{
public static void main(String args[])
{ String str[][]=new String[9][];
char cr[]=new char[]{'我','爱','中','国'};
System.out.println("hello word!");
System.out.println(cr);
九九乘法表 jjcfb=new 九九乘法表();
str=jjcfb.打印乘法表(str);
for(int i=0;i<9;i++)
{
for(int j=0 ;j<=i;j++)
{
if(i==9)break;
System.out.print(str[i][j]);
}
System.out.println("长度为:"+str[i].length);
}
}
}
class 九九乘法表
{
public String[][] 打印乘法表(String str[][])
{
int i,j;
for(i=1;i<10;i++)
{ String b[]=new String[i];
for(j=1;j<=i;j++)
{
System.out.print(j+"x"+i+"="+j*i+"\t");
b[j-1]=j+"x"+i+"="+j*i+"\t";
}
System.out.println();
str[i-1]=b;
}
return str;
}
}
使用对象数组打印九九乘法表
MultipLine.java
package lijie;
public class MultipLine{//MultipLine类同于保存九九乘法表中对应行的信息
int n;//成员变量n,用于保存该行对象对应的行数
String arr[];//成员变量arr[]数组,用于保存该行打印的内容,
//例 arr[0]保存“1*3=3”;arr[1]保存“2*3=6”;arr[2]保存“3*3=9”
/*
* MultipLine类的带参数的构造方法,用于初始化成员变量n和成员变量arr[]
* */
public MultipLine(int n)
{
this.n = n;//将形参的值赋给成员变量n
arr=new String[n];//创建一个长度为n的String数组
for(int i=0;i<n;i++)
{
arr[i]=(i+1)+"*"+n+"="+n*(i+1)+"\t";
//保存九九乘法表中第n行的打印内容
}
}
/*
* 该方法用于打印这个行中保存的打印内容
* */
void printMultipLine()
{
for(int i=0;i<n;i++)//循环输出数组arr[]数组中数组中的内容
{
System.out.print(arr[i]);
}
System.out.println();
}
}
MultipTable.java
package lijie;
/*MultipTable是主类,因为有main方法
* */
public class MultipTable
{
MultipLine line[]=new MultipLine[9];//定义MultipTable类型的对象数组
public MultipTable()
{ //MultipTable类无参构造方法,用于初始化对象数组
for(int i=1;i<10;i++) {
line[i-1]=new MultipLine(i);//new MultipLine类型的对象,将返回的引用付给数组[i]对象(数组中第i个对象),i是实参对应着第几行,
}
}
/*main()方法,主方法
* */
public static void main(String[] args)
{
MultipTable multipTable=new MultipTable();//因为类方法无法访问实例方法和实例变量,所以new一个multipTable对象,用于调用其成员变量和方法
for(int i=0;i<9;i++) {
multipTable.line[i].printMultipLine();//打印对应行对象中存放的九九乘法表中对应行信息
}
}
}
求大公约数与最小公倍数
第一题
A.java
package 第一题;
public class A {
//辗转相除法
int f1(int a, int b)//计算最大公约数
{
if (a%b==0)
return b;
else ;
return f1(b,a% b);
}
}
B.java
package 第一题;
public class B extends A {
int f2(int a,int b){//计算最小公倍数
return a*b/ super.f1(a,b);
}
}
C.java
package 第一题;
import java.util.Scanner;
public class C {
public static void main(String[] args) {
System.out.println("当前运行的是包:" +C.class.getPackage().getName()+"中C类的main()方法");
System.out.println("请输入数据");
Scanner scanner=new Scanner(System.in);
int x,y;
B b= new B();
x=scanner.nextInt();
y=scanner.nextInt();
System.out.println("最大公约数为:"+b.f1(x,y));
System.out.println("最小公倍数为:"+b.f2(x,y));
}
}