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

题目:求0—7所能组成的奇数个数,奇数中不包含重复数字。

 1 public class Prog43 {
 2     public static void main(String[] args) {
 3         //0-7能组成的所有不重复的数的最大值是76543210
 4         //0-76543210中所有的奇数个数为76543210/2
 5         String[] s=new String[76543210/2];//定义一个字符串数组存储0-7能组成的所有奇数
 6         int n=0;//定义一个变量为满足条件的奇数计数
 7         int count=0;
 8         //将所有奇数转换成字符串存入字符串数组s中
 9         for(int i=1;i<=76543210;i++) {
10             if((i+1)%2==0) {
11                 s[n]=String.valueOf(i);
12                 n++;
13             }
14         }
15         //将所有的字符串数组中的元素取出分别存入一个字符数组c中
16         for(int j=0;j<n;j++) {
17             char[] c= s[j].toCharArray();
18             outer:for(int k=0;k<c.length;k++) {
19                 for(int m=1;m<c.length;m++) {
20                     if(c[k]==c[m]) {//将字符数组中的每个元素取出,一旦发现重复值退出循环
21                         break outer;
22                     }
23                 }
24                 count++;//若该字符数组中不存在重复的元素,则该奇数为满足条件的奇数
25             }
26         }
27         System.out.println("0-7所能组成的不包含重复数字的奇数个数共有:"+count+"个");
28     }
29 }
30 /*运行结果
31 0-7所能组成的不包含重复数字的奇数个数共有:18567220个
32 */

 

posted @ 2019-04-30 15:57  parkour高手  阅读(830)  评论(0编辑  收藏  举报