菱形的打印输出

菱形的打印输出

昨天笔试的时候试卷上有一个菱形,让你写出代码,其实题真的不难,只需要找到规律写出几个 for 循环即可。可是当时闷热的环境下,半天没找到规律心里又一急,就直接......

所以现在我自己回去整理了一下,具体代码如下:

public class Rhombus {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        // 打印菱形
        // 菱形可以把它看成上下两部分,分别写两个循环即可
        // 上半部分,输出的*为1,3,5,7,9,...
        for (int i = 1; i <= n; i++) {
           // 先输出空白的那一部分
            // 这部分其实就是输出一个倒的直角三角形,按照规律就是 j<=n-i
            // 如果是输出正的直角三角形就是 j<=i
            for (int j = 1; j <= n-i; j++) {
                System.out.print(" ");
            }
            // 空白输出后就是输出*
            // 很显然是 1,3,5,7,9,...,2*i-1
            for (int k = 1; k <= 2*i-1; k++) {
                System.out.print("*");
            }
            // 换行
            System.out.println();
        }
        // 输出下半部分
        for (int i = 1; i <= n-1; i++) {
           // 先输出空白的(其实也是正三角形)
            // 所以就是 j<=i
            for (int j = 1; j <= i; j++) {
                System.out.print(" ");
            }
            // 这个就是倒的奇数输出*
            // 即 2*(n-1-i)+1,
            for (int k = 1; k <= 2*(n-i)-1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

输出的结果:

6
     *
    ***
   *****
  *******
 *********
***********
 *********
  *******
   *****
    ***
     *

原文地址:https://www.cnblogs.com/reformdai/p/11505006.html

时间: 2024-10-03 09:17:16

菱形的打印输出的相关文章

用Java实现菱形的打印输出

import java.util.Scanner; public class dengyao2 { public dengyao2() { super(); } public static void main(String[] args) { System.out.println("请输入菱形的边长:"); Scanner input = new Scanner(System.in); if (input.hasNextInt()) { int a = input.nextInt();

c语言打印空心菱形

***算法:把菱形的中心看成坐标的原点(0,0),由此可以知道,如果|x| + |y| <= n;则打印输出"*"号,否则打印输出" " int mai(){ int n; printf("请输入来那个菱形边长:"); scanf("%d",&n); //打印实心菱形 for (int x = -(n-1); x <= n-1; x++){ for (int y = -(n-1); y <= n-1;

关于Scala多重继承的菱形问题

在Scala中的trait中引入了混入的概念,即Mixin of trait. 什么是混入(mixin) 可能翻译不准确,有人也称之为混入类(mixins),混入是一种组合的抽象类,主要用于多继承上下文中为一个类添加多个服务,多重继承将多个 mixin 组合成一个类.例如,如果你有一个类表示"马",你可以实例化这个类来创建一个"马"的实例,然后通过继承像"车库"和"花园"来扩展它,使用 Scala 的写法就是: val myH

Android 设计一个菱形形状的Imageview组件.

网上没有资料,特来请教下大神 Android 设计一个菱形形状的Imageview组件. >> android 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/android/1010000007107851/Android设计一个菱形形状的Imageview组件.html

题目:打印出如下图案(菱形)

×× ×××××× ×××××××××× ×××××× ×× class HomeWork0604{public static void main (String[] args){int i,j,k;for(i=0;i<=3;i++) //控制前三行 { for(j=0;j<(2*(3-i));j++) //控制前三行空格System.out.print(" ");for(k=0;k<(4*i-2);k++) //控制前三行* System.out.print(&qu

C++之菱形继承

当我们谈C++时,我们谈些什么? 封装,继承,多态.这是C++语言的三大特性,而每次在谈到继承时我们不可避免的要谈到一个很重要的问题--菱形继承. a.菱形继承是什么 如上图,菱形继承即多个类继承了同一个公共基类,而这些派生类又同时被一个类继承.这么做会引发什么问题呢,让我们来看一段代码吧! #include<iostream> using namespace std; class Base { protected: int _base; public: void fun() { cout &

【C语言】用循环语句输出菱形

//用循环语句输出菱形 #include <stdio.h> int main() { int i,j; for(i=0;i<=3;i++) //上4行 { for(j=0;j<=3;j++) //上4行的左边 { if(i+j<=2) printf(" "); else printf("*"); } for(j=4;j<=6;j++) //上4行的右边 { if(j-i>=4) printf(" ");

1-1-09:字符菱形

09:字符菱形 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形. 输入 输入只有一行, 包含一个字符. 输出 该字符构成的菱形. 样例输入 * 样例输出 * *** ***** *** * #include<stdio.h> int main() { char a; scanf("%c",&a); int i,j,s; for( i=1;i<=3;i++) { f

java字符串,包,数组及空心正方形,菱形的实例

一.数组:相同类型的多个对像引用类型:所有的类,接口,数组,int[] ints(变量名) = new int[3]new:指的是在内存空间重新开辟一块区域 String s1 = "abc"; String s2 = "abc"; System.out.println(s1==s2); String s3 = new String("abc"); String s4 = new String("abc"); System.o