半片橘子 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 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。