zoukankan      html  css  js  c++  java
  • 杨辉三角

    题目:使用二维数组打印一个10行杨辉三角。

    思路:

    本题考察数组元素的赋值。

    1. 第一行有1个元素,第n行有n个元素

    2.每一行的第一个元素和最后一个元素都是1

    3.从第三行开始,对于非第一个元素和最后一个元素的元素,即:yangHui[i][j] = yangHui[i-1][j-1] + yangHui[i-1][j]; 

    代码实现:

    public class test{
        public static void main(String[] args) {
            int[][] yangHui = new int[10][];
            for (int i = 0; i < yangHui.length; i++) {
                yangHui[i] = new int[i + 1];
    
                // 给首末元素赋值
                yangHui[i][0] = yangHui[i][i] = 1;
                // 给每行的非首末元素赋值
                for (int j = 1; j < yangHui[i].length - 1; j++) {
                    yangHui[i][j] = yangHui[i-1][j-1] + yangHui[i-1][j];
                }
    
            }
            // 二维数组的遍历
            for (int i = 0; i < yangHui.length; i++) {
                for (int j = 0; j < yangHui[i].length; j++) {
                    System.out.print(yangHui[i][j] + " ");
                }
                System.out.println();
            }
        }
    }

    运行结果:

    【拓展之笔试题】

    创建一个长度为6的int型数组,要求数组元素的值都在1-30之间,且是随机赋值。同时,要求元素的值各不相同。

    噗.....半个小时才做出来T.T,各不相同一直没找到解决方案。。。

    解法1(自己写的)

    public class test{
        public static void main(String[] args) {
            int[] arr = new int[6];
            arr[0] = (int)(Math.random() * 30) + 1; // [0,1) [0,30) [1,31)
            int index = 1;
            while (index < arr.length){
                boolean flag = false;
                int temp = (int)(Math.random() * 30) + 1;
                for (int i = 0; i < index; i++) {
                    if (temp == arr[i]){
                        flag = true;
                        break;
                    }
                }
                if (!flag){
                    arr[index] = temp;
                    index++;
                }
            }
            System.out.println(Arrays.toString(arr));
        }
    }

    解法2(参考康师傅)

    public class test{
        public static void main(String[] args) {
            int[] arr = new int[6];
            for (int i = 0; i < arr.length; i++) {
                arr[i] = (int)(Math.random() * 30) + 1; // [0,1) [0,30) [1,31)
                for (int j = 0; j < i; j++) {
                    if (arr[i] == arr[j]){
                        i--;  // 妙极了~~
                        break;
                    }
                }
            }
            System.out.println(Arrays.toString(arr));
        }
    }
  • 相关阅读:
    iOS tableViewCell自适应高度 第三发类库
    iOS 用 SDWebImage 清理图片缓存
    iOS JsonModel 的使用
    Objective-C语法之KVO使用
    iOS开发之 用第三方类库实现轮播图
    OS开发UI篇—使用UItableview完成一个简单的QQ好友列表
    iOS tableView 静态单元格的实现
    iOS沙盒目录结构解析
    ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
    AFNetworking 3.0.4 的使用
  • 原文地址:https://www.cnblogs.com/HuangYJ/p/13675336.html
Copyright © 2011-2022 走看看