Java--求0—7所能组成的奇数个数(数字不重复)的标准答案

本文通过高中数学的排列组合原理,详细解析如何计算由0到7数字组成的奇数个数,涵盖一位数至八位数的计算过程,并提供Java代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

回过头再看发现有点没解释清楚,所以对博客进行了一些必要的补充和说明,如果还有不明白的的可以评论或私信我,我看到了会尽快答复。


解决这道题我们要想到高中数学里的排列组合,
先让我们理顺一下:

1.当组成一位数时:

1,3,5,7四种情况

2.当组成两位数时:

十位数上不能是0,个位数上由1,3,5,7组成

则公式是
在这里插入图片描述

解释一下啊:

  1. 为什么要乘以4呢? 因为组成的奇数它个位上有四种情况,可以为1、3、5、7
  2. 第一个A,是因为在个位数确定的情况下,十位上的数就从剩下的7个数字选一个
  3. 第二个A,是因为组成数字的第一位不能是0,所以要减去十位上是0的情况,那么十位上是0的情况下也就是1种

当组成三位数时:
公式为
在这里插入图片描述
解释:计算百位数为0的情况,也就是在个位确定了数字时,百位数为0,那十位上的数就从剩下的6个数字中选一个。

以此类推,当组成i位数时
在这里插入图片描述

其中
在这里插入图片描述
由此生成代码:

public static void main(String[] args) {

		int sum = 4;
		for (int i = 2; i <= 8; i++) {
			sum += (n(7) / n(8 - i) - n(6) / n(8 - i)) * 4;
		}
		System.out.println("0—7所能组成的奇数个数为:" + sum);
	}
    //写一个生成n!的函数
	public static double n(int a) {
		double n = 1;
		for (int i = 1; i <= a; i++) {
			n *= i;
		}
		return n;
	}


输出
在这里插入图片描述

搞定完成!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~祝今在

喝个茶水

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值