`
u012081441
  • 浏览: 15959 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

变换多姿的图案

阅读更多
  1. 十字型的徽标(递归)
    这里写图片描述
package org.vo;
import java.util.Scanner;
public class text8 {
        /*
        * 十字型的徽标
        */
        public static void main(String[] args) {
        Scanner scann=new Scanner(System.in);
        int num=Integer.parseInt(scann.next());
        int num1=9+(num-1)*4;
        int arr[][]=new int[num1][num1];
        fun(arr,num1,0,2,1);
        show(arr);
    }
    public static void fun(int arr[][],int num,int x,int y,int k){
            if(num-x==1)
            return;
            for(int i=x;i<num-x;i++){
                for(int j=y;j<num-y;j++){
                arr[i][j]=k;
                arr[j][i]=k;
            }
        }
        k=k==1?0:1;
        fun(arr,num,x+1,y+1,k);
    }
    public static void show(int arr[][]){
    //打印
    for(int i=0;i<arr.length;i++){
        for(int j=0;j<arr[i].length;j++){
        if(arr[i][j]==1){
            System.out.print(“$”);
        }else{
            System.out.print(“.”);
        }
    }
    System.out.println();
    }
}
}

2.打印一个 N*N 的方阵
这里写图片描述

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = Integer.parseInt(scanner.nextLine());
        int arr[][] = new int[num][num];
        for (int i = 0; i < num; i++) {
            for (int j = 0; j < num; j++) {
                arr[i][j] = 'T';
            }
        }
        for (int i = 1; i < num - 1; i++) {
            for (int j = 1; j < num - 1; j++) {
                arr[i][j] = 'J';
            }
        }
        fun(2, 2, arr, 1, num);
        show(arr);
    }

    public static void fun(int x, int y, int[][] arr, int count, int num) {
        if (num - x == 1)
            return;
        for (int i = x; i < num - x; i++) {
            for (int j = y; j < num - y; j++) {
                arr[i][j] = count;
            }
        }
        fun(x + 1, y + 1, arr, count + 1, num);
    }

    private static void show(int[][] arr) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                if (i == 0 || j == 0 || i == arr.length - 1
                        || j == arr[i].length - 1 || i == 1 || j == 1
                        || i == arr.length - 2 || j == arr[i].length - 2) {
                    System.out.print((char) arr[i][j]);
                } else {
                    System.out.print(arr[i][j]);
                }
            }
            System.out.println();
        }
    }

3.矩阵中填数. 当给出 N*N 的矩阵(倒填)
这里写图片描述

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = Integer.parseInt(scanner.nextLine());
        int arr[][] = new int[num][num];
        int k = num * num;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                arr[i][j] = k;
                k--;
            }
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println();
        }
    }

4.矩阵中填数. 当给出 N*N 的矩阵(回转填数)
这里写图片描述

/**
     * 矩阵中填数. 当给出 N*N 的矩阵(回转填数)
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = Integer.parseInt(scanner.nextLine());
        int arr[][] = new int[num][num];
        int k = num * num;
        for (int i = 0, j = 0, d = 0, x = 1; x <= k; x++) {
            arr[i][j] = x;
            if (d == 0)// 方向向下
            {
                if (i + 1 < arr.length && arr[i + 1][j] == 0) {
                    i++;
                } else {
                    d = 1;
                }
            }
            if (d == 1)// 方向向右
            {
                if (j + 1 < arr[i].length && arr[i][j + 1] == 0) {
                    j++;
                } else {
                    d = 2;
                }
            }
            if (d == 2)// 方向向上
            {
                if (i - 1 >= 0 && arr[i - 1][j] == 0) {
                    i--;
                } else {
                    d = 3;
                }
            }
            if (d == 3)// 方向向左
            {
                if (j - 1 >= 0 && arr[i][j - 1] == 0) {
                    j--;
                } else {
                    d = 0;
                    i++;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println();
        }
    }

5.杨辉三角

 /**
     * 杨辉三角
     */
    public static void main(String[] args) {
        int num = 10;// 打印10行的杨辉三角,可以任意指定
        int arr[][] = new int[num][];
        // 给数组列数开辟空间一行比一行多一列
        for (int i = 0; i < arr.length; i++) {
            arr[i] = new int[i + 1];
        }
        // 给数字每一行的第一个和最后一个赋值为1
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                arr[i][0] = 1;
                arr[i][arr[i].length - 1] = 1;
            }
        }
        // 根据杨辉三角规律给其它地方赋值
        for (int i = 2; i < arr.length; i++) {
            for (int j = 1; j < arr[i].length - 1; j++) {
                arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
            }
        }
        // 打印杨辉三角
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
分享到:
评论

相关推荐

    Wallpaper Engine的星云变幻.rar

    "星云变幻"这个主题,以其深邃的宇宙背景和流动的星云图案,为用户营造出一种沉浸在星际之间的感觉。 在"星云变幻"这款动态壁纸中,我们可以看到各种色彩斑斓的星云在屏幕中缓缓流动,仿佛在讲述着宇宙的故事。这些...

    html5 canvas抽象花纹变幻动画特效

    这些路径可以被填充或描边,形成各种抽象图案。 2. **颜色和渐变(Colors and Gradients)**:使用`fillStyle`和`strokeStyle`属性可以设置线条和填充的颜色。为了实现颜色变化的效果,可以使用线性渐变(`...

    HTML5 canvas实现炫酷的背景变幻动画源码.zip

    此外,为了实现“背景变幻”,可能还会用到canvas的图像处理功能,比如模糊效果、渐变填充、图案填充等。例如,可以加载一张图片作为背景,然后应用模糊滤镜: ```javascript var img = new Image(); img.src = '...

    (word完整版)Java趣味编程100例.doc

    1. 变幻多姿的图表 图表是一种非常有用的数据可视化方式,在各种场合得到广泛应用。 Java 趣味编程 100 例中,第 1 章介绍了如何使用 Java 语言编写图表程序,生成金字塔图案、倒金字塔、直角三角形等多种形状的...

    Java趣味编程100例 清华大学出版社.zip

    第1章介绍了8个常见的变幻多姿的图表;第2章介绍了12个身边的数学问题;第3章介绍了8个趣味整数;第4章介绍了9个趣味素数;第5章介绍了8个趣味方程;第6章介绍了8个趣味分数;第7章介绍了10个逻辑推理;第8章介绍了8...

    Java趣味编程100例.doc

    ### Java趣味编程100例之变幻多姿的图表与九九乘法表 #### 1. 变幻多姿的图表 ##### 1.1 金字塔图案 **问题描述**: 创建一个Java程序,该程序能输出一个金字塔形状的图案。 **问题分析**: 在分析如何构建...

    Java趣味编程100例-I.doc

    本章我们将探讨如何利用Java实现变幻多姿的图表,包括金字塔图案和九九乘法表。 首先,让我们来看如何用Java绘制金字塔图案。如描述中所述,金字塔图案是一个经典的循环应用问题。在Java中,我们通常会使用嵌套循环...

    基于分形云模型元胞自动机的艺术图案生成方法 (2013年)

    分形图案以其无限细节的自相似性成为了表现自然界无序与变幻无穷之美的理想选择。在这一领域,基于元胞自动机的图案生成方法被广泛研究和应用。然而,传统的元胞自动机图案生成方法在生成图案的模糊性和随机性方面...

    Photoshop实例教程新.ppt

    你可以尝试不同的中心点和旋转角度,创造出各种各样的变幻线图案。 这个Photoshop实例教程覆盖了基本的图形创建、颜色应用、蒙版编辑、滤镜效果和变换技巧,对于提升Photoshop技能和理解其工作原理非常有帮助。通过...

    漂亮的万花筒效果源码(Silverlight)

    通过巧妙地结合路径填充和三角变换,我们可以创造出丰富多彩、变幻莫测的视觉效果,带给用户全新的互动体验。学习并理解这一源码,不仅可以提升你的Silverlight编程技能,还能激发你在创意设计上的灵感。

    (完整版)Java趣味编程100例.doc

    第1章 变幻多姿的图表 图表是一种非常常用的数据可视化方式,能够轻松地展示复杂的数据关系和变化趋势。在本章中,我们将学习如何使用Java语言来绘制图表,并且学习如何灵活地应用图表来解决实际问题。 1.1 金字塔...

    全彩点光源LED驱动芯片P9816彩灯控制

    此驱动芯片具有以下优点:它是一款全彩点光源LED驱动芯片,采用CMOS工艺,提供九路恒流驱动及256级灰度调制输出,使用二分之一分频技术,使一颗IC能控制6个像素点,用于驱动显示灯光变幻、彩色动漫图案;根据不同...

    文字旋转工具变换颜色

    更进阶的技巧是使用渐变、图案甚至动态颜色变化,例如通过CSS的`animation`或JavaScript的定时器实现颜色的动态过渡。 结合"文字旋转"和"变换颜色",我们可以创建出一种动态滚动文本效果,比如"scrolltext"可能就是...

    苏教版小学五年级上册科学实验报告单.doc

    通过三面镜子的组合,加上彩色纸屑,学生可以看到无数变幻的图案,这些图案是由于光线在镜子间多次反射形成的。 6. 光的折射: 最后一个实验涉及光的折射,通过铅笔和装有水的玻璃杯,学生观察到光线在水和空气的...

    Photoshop实例教程(共39张PPT).pptx

    4. 复制图层并进行关键操作,包括设置旋转中心点和旋转角度,使线条产生连续的复制和旋转效果,从而创造出变幻无常的线条图案。 通过以上实例,我们可以学习到Photoshop中基本的绘图技巧、路径运用、蒙版编辑、模糊...

    数字逻辑课程设计(彩灯变换)

    这些设备能方便地编程,实现更复杂的灯光效果,如动态图案、音乐同步等。 6. **接口与驱动电路**:为了驱动LED灯,需要设计合适的驱动电路,确保电流和电压符合LED的要求。此外,如果LED数量较多,可能还需要考虑...

    行业分类-外包设计-全息底纹镭射包装材料印刷质量检测系统和检测方法的介绍分析.rar

    在印刷过程中,全息图案通过镭射光刻技术直接刻录在薄膜材料上,形成复杂的光栅结构,从而产生变幻莫测的色彩和视觉效果。 印刷质量检测系统则是确保这些精美包装得以实现的关键。该系统通常包括以下几个部分: 1....

    小学科技社团活动记录.doc

    他们使用了手电筒的玻璃片、彩色碎玻璃或胶片、三片镜子和纸筒,创造出一个能展示变幻莫测图案的装置。万花筒底层的彩色材料和中间的镜面结构使得光线经过多次反射,形成千变万化的图像,这有助于孩子们直观地理解...

    行业文档-设计装置-一种具有镭射效果的烟用直镀型接装纸.zip

    在这款设计中,镭射效果的引入是一种高级的装饰技术,能够创造出丰富多彩、变幻莫测的视觉效果。镭射效果的实现主要依靠镭射全息图层,这种图层在光线照射下可以呈现出立体的、动态的光学图案,增加产品的视觉冲击力...

Global site tag (gtag.js) - Google Analytics