半片橘子 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 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000