扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
一:设计思路:
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站制作、云霄网络推广、成都小程序开发、云霄网络营销、云霄企业策划、云霄品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供云霄建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
1、空心的等腰三角形,用*作为三角形的边,用空格做格式控制。
2、第一行输出一个*号,且要放在正中央,具体位置需要根据三角形的高度来确定。
3、因为是等腰三角形,所以每一行由*号组成的有效字符串长度比上一行多2个。
4、综合2、3,该三角形的*号间的有效字符串长度,按1、3、5、7...规律变化
5、所以,第一行输出的*号位置由三角形的高决定,设高度为h,则第一行*号位置为第(2*h-1)/2+1,简化后为h(因为单数/2后的0.5在int型变量计算中被忽略)。
6、空心的实现中,从第二行输出*号后开始插入空格,个数每行加2,直到最后一行,不包含最后一行。
二:实现方法
1、定义三角形的高,改变该值,可以改变三角形的大小。
2、根据高度,将*号放在对应h位置,用空格做格式控制,空格个数每行-1。
3、如果是第二行且不是最后一行(大于1且小于h),在输出*号后,输出空格,以后每行多输出两个空格
4、最后一行全部输出*号
//java代码:设计空心等腰三角形
public class IsoscelesTriangleTest {
/**
* 一:设计思路:
* 1、空心的等腰三角形,用*作为三角形的边,用空格做格式控制。
* 2、第一行输出一个*号,且要放在正中央,具体位置需要根据三角形的高度来确定。
* 3、因为是等腰三角形,所以每一行由*号组成的有效字符串长度比上一行多2个。
* 4、综合2、3,该三角形的*号间的有效字符串长度,按1、3、5、7...规律变化
* 5、所以,第一行输出的*号位置由三角形的高决定,设高度为h,则第一行*号位置为第(2*h-1)/2+1,
* 简化后为h(因为单数/2后的0.5在int型变量计算中被忽略)。
* 6、空心的实现中,从第二行输出*号后开始插入空格,个数每行加2,直到最后一行,不包含最后一行。
* 二:实现方法
* 1、定义三角形的高,改变该值,可以改变三角形的大小。
* 2、根据高度,将*号放在对应h位置,用空格做格式控制,空格个数每行-1。
* 3、如果是第二行且不是最后一行(大于1且小于h),在输出*号后,输出空格,以后每行多输出两个空格
* 4、最后一行全部输出*号
* 三:图示,5层空心等腰三角形
* *
* * *
* * *
* * *
* *********
*
* */
//定义三角形的高度,改变此值,可改变三角形的大小,必须大于等于2
public static final int HEIGHT = 9;
public static void main(String[] args) {
// TODO Auto-generated method stub
int count = HEIGHT - 1; //定义输出空格个数,初值为第一行要输出的空格个数
System.out.println("空心等腰三角形,高度:"+HEIGHT);
for(int row = 1;row = HEIGHT;row++,count--){
//输出空格
for(int i = 0;i count;i++){
System.out.print(" ");
}
System.out.print("*");
//是第一行,则直接换行,最后一行输出全部*号,否则从第二行开始输出空格,每行+2
if(row == 1){
System.out.println();
}else if(row == HEIGHT){
for(int i = 0;i row*2-2;i++){
System.out.print("*");
}
System.out.println();
}else if(row 1 row HEIGHT){
for(int i = 0;i row*2-3;i++){
System.out.print(" ");
}
System.out.println("*");
}
}
}
}
运行结果图:
理解思路和实现方法后,阅读代码会简单些,注意格式控制中的算式,都是有规律可循的。
第一个for循环控制行数,共有五行。第二个for循环输出左边空格。第三个for循环输出*状的等腰三角形。你可以这样理解:整个输出的东西共包括两大部分:左半部分的空格和右半部分的*状等腰三角形,分别由两for循环和输出语句,而第一个for语句是控制整个的行数。。不知这样你是否能理解
package com.company;
import java.util.Scanner;
public class demo08 {
public static void main(String[] args) {
/**
* //倒三角
* for (int i=1;i=5;i++){
* for (int j = 5; j =i ; j--) {
* System.out.print("*");
* }
* System.out.println();
* }
*/
//等腰三角形
Scanner scanner=new Scanner(System.in);
System.out.println("请输入等腰三角形的行数");
int hangshu=scanner.nextInt();
for (int i=1;i=hangshu;i++) {//控制行数
for (int j =0;j5-i; j++) {//一行中"#"个数
System.out.print("#");
}
for (int k =0; k 2*i-1 ; k++) {//一行中"*"的个数
System.out.print("*");
}
System.out.println();
}
}
}
你的数列没有问题,就是前面缺少空格
在
for(i=0;i=7;i++){
后面加上:
for(j=7;ji;j--)
System.out.printf("\t");
就行了
不过鉴于你的输出有一位数有多位数
最好将System.out.printf("%d ",j);改成System.out.printf("%d \t",j);,这样就能对的很齐了
用\t的结果:
1
1 2 1
1 2 4 2 1
1 2 4 8 4 2 1
1 2 4 8 16 8 4 2 1
1 2 4 8 16 32 16 8 4 2 1
1 2 4 8 16 32 64 32 16 8 4 2 1
1 2 4 8 16 32 64 128 64 32 16 8 4 2 1
java 打印等腰三角形可以采用如下方式:
public class Mul {
public static void main(String args[]) {
for (int i = 1; i = 6; i++) {
// 空格分布
for (int j = 6 - i; j 0; j--) {
System.out.print(" ");
}
// 符号分布
for (int j = 1; j = i; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
效果如下:
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流