半片橘子 2023-04-19 16:32 采纳率: 92.9%
浏览 14
已结题

如何计算一个数的非零数的积

import java.util.Scanner;

public class week03 {

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.println("输入数字:");
    int number =fun(in.nextInt());
    System.out.println(number);
}
/**
 * 获取数字的乘积
 * @param number
 * @return  数字的乘积
 */
public static int fun(int number){
    //判断数字的位数
    int lengthNum = LengthNum(number);
    int  n = 1;//获取的位数
    int  m = 10;//取余
    int num = 1;//存储数字各个位数的乘积
    for(int i=0;i<lengthNum;i++){
        //依次获取数字的位数
        int g = number /n % m;
        n *= 10;
        num *= g;
    }
    return num;
}
/**
 * 判断输入的数字是几位数
 * @param num 输入数字
 * @return 数字的位数
 */
public static int LengthNum(int num){
    int count=0; //计数
    while(num>=1) {
    num/=10;
    count++;
    }
    return count;
}

}
怎么修改可以计算非零数的积

  • 写回答

4条回答 默认 最新

  • 社区专家-Monster-XH 2023-04-19 16:34
    关注

    基于Monster 组和GPT的调写:

    fun方法中添加一个条件语句来过滤数字的每个位数是否为零,如果不为零,才将其包含在数字的乘积中

    public static int fun(int number){
        //判断数字的位数
        int lengthNum = LengthNum(number);
        int n = 1;//获取的位数
        int m = 10;//取余
        int num = 1;//存储数字各个位数的乘积
        for(int i=0;i<lengthNum;i++){
            //依次获取数字的位数
            int g = number /n % m;
            n *= 10;
            if (g != 0) {
                num *= g;
            }
        }
        return num;
    }
    
    
    

    如果数字的某个位数为零,则不将其包含在数字的乘积中。如果数字中所有位数都为零,则返回数字1,因为任何数字乘以1都等于它本身。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 创建了问题 4月19日

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line