黑马程序员技术交流社区

标题: 思路是敲出来的 [打印本页]

作者: 王颖凯    时间: 2019-3-29 17:22
标题: 思路是敲出来的
有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?
把这些数都输出出来,并且输出总共的个数。
public class test6 {
    public static void main(String[] args) {
        int sum = 0;
        for (int x = 1; x <= 4; x++) {
            for (int y = 1; y <= 4; y++) {
                if(y == x){
                    continue;  //此处是我的解题瓶颈,理解以后,思路立刻清晰明了
                }
                for (int z = 1; z <= 4; z++) {
                    if(z == x || z == y){
                        continue;
                    }else {
                        sum += 1;
                        System.out.println(x * 100 + y * 10 + z);
                    }
                }
            }
        }
        System.out.println("可以组成的数量是:" + sum);
    }
}
/*分析以下需求,并用代码实现:
       (1).键盘录入10个int类型的整数,把这10个整数存储到一个int类型的一维数组arr中。
       (2).将arr数组中的内容反转
       (3).定义一个方法:求该数组中元素的和,并计算出数组中元素为奇数的个数,并打印出来。
      格式为:数组元素的和是100,数组中元素为奇数的个数是3个
       (4).定义一个方法:输入一个整数,查看该整数是否在数组中存在。如果不存在,
       则输出:该整数在数组中不存在。如果存在,则输出该整数在数组中存在的个数。
* */
public class test15 {
    public static void main(String[] args) {
        int[] arr = new int[10];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < arr.length; i++) {
            System.out.print("给数组赋值:");
            int s = sc.nextInt();
            arr = s;
        }
        change(arr);
        printArray(arr);
        print(arr);
        isHave(5, arr);
    }
    public static void change(int[] arr) {
        for (int min = 0, max = arr.length - 1; min < max; min++, max--) {
            int temp = arr[min];
            arr[min] = arr[max];
            arr[max] = temp;
        }
    }

    public static void printArray(int[] arr) {//打印数组的方法
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr);
        }
    }
    //求该数组中元素的和,并计算出数组中元素为奇数的个数,并打印出来。
    public static void print(int[] arr) {
        int sum1 = 0;//数组中元素的和
        int sum2 = 0;//元素为奇数的个数
        for (int i = 0; i < arr.length; i++) {
            sum1 += arr;
            if (arr % 2 == 1) {
                sum2 += 1;
            }
        }
        System.out.println("数组元素的和是" + sum1);
        System.out.println("数组中元素为奇数的个数是:" + sum2);
    }
    //定义一个方法:输入一个整数,查看该整数是否在数组中存在。如果不存在,
    //  则输出:该整数在数组中不存在。如果存在,则输出该整数在数组中存在的个数。
    public static void isHave(int num, int[] arr) {
        int sum = 0;                                 //num在数组中存在的个数
        for (int i = 0; i < arr.length; i++) {
            if (arr == num) {
                sum += 1;
            }
        }
        if (sum == 0) {
            System.out.println("该整数在数组中不存在");
        }else{
            System.out.println(sum);
        }
    }
}
import java.util.Scanner;
/*键盘录入任意一个整数,程序能输出这个数的位数。例如输入123   输出:123是一个3位数
* */
public class test10 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入想要查询的整数:");
        int s = sc.nextInt( );
        int sum = 1;
        if(s >= 0) {
            while (s / 10 > 0) {   //个人是这么解题的,没有见过标准答案,不知合理不,测试都是合适的
                sum += 1;
                s = s / 10 ;
            }
        }
        System.out.println(sum);
        System.out.println( "输入的是一个"+ sum + "位数");
    }
}








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2