展开全部
i j/k 0 1 2
0 0 0 0
1 0 0
2 0
i代表行数
j/k代表列数
0 1 2 3 4
0 0
1 0 0
2 0 0 0
如图所示:
for(int i=0;i<n;j++){
for(int j=0;j<n-i;j++){
}
for(int k=0;k<i+1;k++){
}
System.out.println();
}
算法:
设边长为n
建立一个n*n直角梯形坐标盘,将前几位以依次递减的顺序改为空格因为是一行一行打印的,所以先打印n-1个空格最后添加“* ”可以发现规律前几位的空格完了后,是以如下过程循环的(用0代表空格)
0 0 0 * 0
0 0 * 0 * 0
0 * 0 * 0 * 0
既是以*0*0的过程循环
打印上三角边长为n
当第一行时i=0;
j=0是打印空格,j=1打印空格至j=n-1,
当第二行时i=1;
j=0,j=1....j=n-1打印空格
如此类推得到一个依次递减的结构
i增加,j被限制减小
所以for(int j=0;j<n-i;j++){}
打印“*”,因为在前头分析可看出是以“*0”循环的,可以再后面循环添加“*0”,因为是依次递增的
0 0 * 0
0 * 0 * 0
* 0 * 0 * 0
可写作for(int k=0;k<i+1;k++)
下三角
0 * 0 * 0 * 0 * 0
0 0 * 0 * 0 * 0
0 0 0 * 0 * 0
0 0 0 0 * 0
这个和上个很相似
空格是依次递增的
i=0;j=0
for(int j=0;j<i+1;j++)
加”*0”依次递减
for(int k=0;k<n-i;k++)
程序列子如下
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("n*n的菱形请输入n");
//input
int n=sc.nextInt();
//打印上三角
for(int i=0;i<n;i++){//控制行数,做一个边长为4个*的等腰上三角形
for(int j=0;j<n-i-1;j++){//打印空格下直三角
System.out.print(" ");
}
for(int k=0;k<i+1;k++){//打印空格后的每一个*号和空格
System.out.print("* ");
}
System.out.println();
}
//打印下三角
for(int i=0;i<n-1;i++){//控制行数,做一个等腰下三角形
for(int j=0;j<i+1;j++){//
System.out.print(" ");
}
for(int k=0;k+i+1<n;k++){
System.out.print("* ");
}
System.out.println();
}
}
}
0 0 0 0
1 0 0
2 0
i代表行数
j/k代表列数
0 1 2 3 4
0 0
1 0 0
2 0 0 0
如图所示:
for(int i=0;i<n;j++){
for(int j=0;j<n-i;j++){
}
for(int k=0;k<i+1;k++){
}
System.out.println();
}
算法:
设边长为n
建立一个n*n直角梯形坐标盘,将前几位以依次递减的顺序改为空格因为是一行一行打印的,所以先打印n-1个空格最后添加“* ”可以发现规律前几位的空格完了后,是以如下过程循环的(用0代表空格)
0 0 0 * 0
0 0 * 0 * 0
0 * 0 * 0 * 0
既是以*0*0的过程循环
打印上三角边长为n
当第一行时i=0;
j=0是打印空格,j=1打印空格至j=n-1,
当第二行时i=1;
j=0,j=1....j=n-1打印空格
如此类推得到一个依次递减的结构
i增加,j被限制减小
所以for(int j=0;j<n-i;j++){}
打印“*”,因为在前头分析可看出是以“*0”循环的,可以再后面循环添加“*0”,因为是依次递增的
0 0 * 0
0 * 0 * 0
* 0 * 0 * 0
可写作for(int k=0;k<i+1;k++)
下三角
0 * 0 * 0 * 0 * 0
0 0 * 0 * 0 * 0
0 0 0 * 0 * 0
0 0 0 0 * 0
这个和上个很相似
空格是依次递增的
i=0;j=0
for(int j=0;j<i+1;j++)
加”*0”依次递减
for(int k=0;k<n-i;k++)
程序列子如下
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("n*n的菱形请输入n");
//input
int n=sc.nextInt();
//打印上三角
for(int i=0;i<n;i++){//控制行数,做一个边长为4个*的等腰上三角形
for(int j=0;j<n-i-1;j++){//打印空格下直三角
System.out.print(" ");
}
for(int k=0;k<i+1;k++){//打印空格后的每一个*号和空格
System.out.print("* ");
}
System.out.println();
}
//打印下三角
for(int i=0;i<n-1;i++){//控制行数,做一个等腰下三角形
for(int j=0;j<i+1;j++){//
System.out.print(" ");
}
for(int k=0;k+i+1<n;k++){
System.out.print("* ");
}
System.out.println();
}
}
}
展开全部
import java.util.Scanner;
public class aa {
private int lineSize;//菱形总共占的行数:注:只能是单数!
public aa(int max){
if(max<0){
System.out.println("您输入的数据不合法:必须是大于0的整数!");
return;
}else if(max%2==0){
System.out.println("您输入的如果是偶数;将会自动加1再输出!");
this.lineSize = max+1;
}else{
this.lineSize= max;
}
//mid为最中间是第几行(行号)!
//比如输出图形为9行的菱形,中间行就是第5行,mid就是5;
int mid = (lineSize+1)/2;
for(int i=1;i<=lineSize;i++){
int j,k;
if(i<=mid){
for(j=1;j<=mid-i;j++)
System.out.print(" ");
for(k=1;k<=2*i-1;k++)
System.out.print("*");
}else{
for(j=1;j<=i-mid;j++)
System.out.print(" ");
for(k=1;k<=lineSize-2*(j-1);k++)
System.out.print("*");
}
System.out.print("\n");
}
}
public static void main(String[] args) {
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("请输入您想要打印的菱形的行数,然后回车确认(注:数字只能是大于0的整数!");
System.out.print("请输入:");
int lineSize = sc.nextInt();
System.out.println("---------------------------");
new aa(lineSize);//要打印的菱形的行数!
System.out.println("---------------------------");
}
}
}
public class aa {
private int lineSize;//菱形总共占的行数:注:只能是单数!
public aa(int max){
if(max<0){
System.out.println("您输入的数据不合法:必须是大于0的整数!");
return;
}else if(max%2==0){
System.out.println("您输入的如果是偶数;将会自动加1再输出!");
this.lineSize = max+1;
}else{
this.lineSize= max;
}
//mid为最中间是第几行(行号)!
//比如输出图形为9行的菱形,中间行就是第5行,mid就是5;
int mid = (lineSize+1)/2;
for(int i=1;i<=lineSize;i++){
int j,k;
if(i<=mid){
for(j=1;j<=mid-i;j++)
System.out.print(" ");
for(k=1;k<=2*i-1;k++)
System.out.print("*");
}else{
for(j=1;j<=i-mid;j++)
System.out.print(" ");
for(k=1;k<=lineSize-2*(j-1);k++)
System.out.print("*");
}
System.out.print("\n");
}
}
public static void main(String[] args) {
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("请输入您想要打印的菱形的行数,然后回车确认(注:数字只能是大于0的整数!");
System.out.print("请输入:");
int lineSize = sc.nextInt();
System.out.println("---------------------------");
new aa(lineSize);//要打印的菱形的行数!
System.out.println("---------------------------");
}
}
}
展开全部
public class Cat {
public static void main(String[] args) {
int num = 2;
drawDiamond(num);
}
private static void drawDiamond(int num) {
for (int i = 0; i < num; i++) {
for (int j = num - i; j > 0; j--) {
System.out.print(" ");
}
for (int z = 0; z <= i * 2; z++) {
System.out.print("*");
}
System.out.print("\n");
}
for (int i = num; i >= 0; i--) {
for (int j = i; j < num; j++) {
System.out.print(" ");
}
for (int z = 0; z <= i * 2; z++) {
System.out.print("*");
}
System.out.print("\n");
}
}
}
-------------
*
***
*****
***
*
public static void main(String[] args) {
int num = 2;
drawDiamond(num);
}
private static void drawDiamond(int num) {
for (int i = 0; i < num; i++) {
for (int j = num - i; j > 0; j--) {
System.out.print(" ");
}
for (int z = 0; z <= i * 2; z++) {
System.out.print("*");
}
System.out.print("\n");
}
for (int i = num; i >= 0; i--) {
for (int j = i; j < num; j++) {
System.out.print(" ");
}
for (int z = 0; z <= i * 2; z++) {
System.out.print("*");
}
System.out.print("\n");
}
}
}
-------------
*
***
*****
***
*
本回答被提问者和网友采纳
展开全部
Class Test {
public static void main(String[] args){
System.out.println(" * ");
System.out.println(" *** ");
System.out.println(" ***** ");
System.out.println(" ******* ");
System.out.println(" ***** ");
System.out.println(" *** ");
System.out.println(" * ");
}
}
最简单的方法。 如果你想用 loop做,就考虑一下每一行的行号跟 每一行*号个数 的关系。 假设给定一行总共有20个字符。
public static void main(String[] args){
System.out.println(" * ");
System.out.println(" *** ");
System.out.println(" ***** ");
System.out.println(" ******* ");
System.out.println(" ***** ");
System.out.println(" *** ");
System.out.println(" * ");
}
}
最简单的方法。 如果你想用 loop做,就考虑一下每一行的行号跟 每一行*号个数 的关系。 假设给定一行总共有20个字符。
展开全部
for(int i=2;i>=-2;i--)//控制行数
{
for(int j=0;j<Math.abs(i)+1;j++)
System.out.print(" ");//控制每行的的空格数,如果第5行前面不要空格,可以把+3去掉
for(int j=0;j<(5-Math.abs(i)*2);j++)
System.out.print("*");//控制每行*的个数
System.out.println();//换行
}
{
for(int j=0;j<Math.abs(i)+1;j++)
System.out.print(" ");//控制每行的的空格数,如果第5行前面不要空格,可以把+3去掉
for(int j=0;j<(5-Math.abs(i)*2);j++)
System.out.print("*");//控制每行*的个数
System.out.println();//换行
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询