Java50道经典习题-程序43 求奇数个数

53 篇文章 0 订阅
题目:求0—7所能组成的奇数个数,奇数中不包含重复数字。
public class Prog43 {
    public static void main(String[] args) {
        //0-7能组成的所有不重复的数的最大值是76543210
        //0-76543210中所有的奇数个数为76543210/2
        String[] s=new String[76543210/2];//定义一个字符串数组存储0-7能组成的所有奇数
        int n=0;//定义一个变量为满足条件的奇数计数
        int count=0;
        //将所有奇数转换成字符串存入字符串数组s中
        for(int i=1;i<=76543210;i++) {
            if((i+1)%2==0) {
                s[n]=String.valueOf(i);
                n++;
            }
        }
        //将所有的字符串数组中的元素取出分别存入一个字符数组c中
        for(int j=0;j<n;j++) {
            char[] c= s[j].toCharArray();
            outer:for(int k=0;k<c.length;k++) {
                for(int m=1;m<c.length;m++) {
                    if(c[k]==c[m]) {//将字符数组中的每个元素取出,一旦发现重复值退出循环
                        break outer;
                    }
                }
                count++;//若该字符数组中不存在重复的元素,则该奇数为满足条件的奇数
            }
        }
        System.out.println("0-7所能组成的不包含重复数字的奇数个数共有:"+count+"个");
    }
}
/*运行结果
0-7所能组成的不包含重复数字的奇数个数共有:18567220个
*/

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值