Java启程第一步

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

java的基础学习目前到数学函数math进度,为了巩固知识,老师布置了如下习题:
1.设计一个数字类,其中存储一个长度为200的整型数字的数组,数组中的所有成员不能大于10,用这个数组来表示一个数字。
2.设计这个数字中的一个方法,使得这个数字可以通过在个位数上加1来让数字增加,当数组中的某一个数字大于10时是可以进位的。
3.尝试设计这个数字类的一个方法,参数是另一个这个数字类的对象,可以两个数字做加法和减法运算。
4.两个数字类的对象可以进行乘法和除法运算。
5.数字类的对象中的数组的长度默认是10,当需要存储的数字位数大于数组的长度的时候,数组的长度需要扩容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、设计一个数字类,其中存储一个长度为200的整型数字的数组,数组中的所有成员不能大于10,用这个数组来表示一个数字。

1. MyNumberl类

package Math;

import java.util.Scanner;

public class MyNumber {

  private int m = 200;//m为存放数组长度
  private int[] array = new int[m];//新建数组array
  private int t = array.length - 1;

  public Number() {
  }//提供无参构造函数

  public Number(int m) {
    this.m = m;
  }//提供有参构造函数,用来方便改变m的值

  public void input() {//成员方法,用来手动输入数组变量
    Scanner sc = new Scanner(System.in);
    System.out.print("请输入该数的位数: ");
    int n = sc.nextInt();
    if (n < m) {//存放数字的位数不能大于预留的数组的位数
      System.out.println("请依次输入该数的数字, 用空格符隔开");

      for (int i = n; i > 0; i--) {
        int a = sc.nextInt();
        if (a < 10 && a >= 0) {
          array[array.length - i] = a;
        } else {
          System.out.println("输入的数字有误,请检查!!!");
        }

      }
    } else {
      System.out.println("您输入的位数太大了");
    }

  }

  public void show(){//设计一个遍历自己的方式
    for (int aa:array) {
      System.out.print(aa);
    }
  }

}

2. Test测试类

package Math;

public class Test {

  public static void main(String[] args) {
    Number nu = new Number();
    nu.input();
    System.out.println("遍历该数组: ");
    nu.show();
  }
}

3. 效果图

在这里插入图片描述
以上为Test测试类的结果

以上为Test测试类的结果

二、设计这个数字中的一个方法,使得这个数字可以通过在个位数上加1来让数字增加,当数组中的某一个数字大于10时是可以进位的。

1. MyNumber类新增如下代码(我这里是加一个一位数)

public void addtion(int i) {//数组加 i 算法
    if(i<10&&i>=0){
      int temp = array[t] + i;
      if (temp < 10) {
        array[t] = temp;
      } else {
        array[t] = temp % 10;
        t -= 1;
        addtion(1);
      }
    }else{
      System.out.println("请给我一个一位数");
    }


  }

2. Test调用

代码如下(示例):

package Math;

public class Test {

  public static void main(String[] args) {
    Number nu = new Number();
    nu.input();
    System.out.println("遍历该数组: ");
    nu.show();
    System.out.println();//分割线
    addtion(3);
    nu.show();
  }
}

3. 测试截图

在这里插入图片描述


三、.尝试设计这个数字类的一个方法,参数是另一个这个数字类的对象,可以两个数字做加法和减法运算。

1. MyNumber类添加如下代码

public void add(int[] a,int[] b,int[] c){//数组c 用来存放a和b的和
  for (int i =a.length-1; i >=0; i--) {
    int temp1 = a[i] + b[i]+c[i];
    if (temp1 < 10) {
      c[i] = temp1;
    } else if(temp1>=10&&temp1<20){
      c[i] = temp1 % 10;
      c[i - 1] += 1;
    }else{
      System.out.println("程序出错!!!");
      break;
    }
  }
}

2. Test类添加如下代码调用

MyNumber t= new MyNumber();
    t.add(nu.array,nu1.array,t.array);
    System.out.println("俩数组相加后结果: ");
    t.show();

3. 测试结果

在这里插入图片描述

四、两个数字类的对象可以进行乘法和除法运算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值