每行前输入的空格数让我很迷,找不出规律,求助
public class Triangle {
//main function
public static void main(String[] args){
Triangle p=new Triangle();
p.printTri(5);
p.printTri(20);
p.printTri(10);
p.printTri(17);
}
//print function
public void printTri(int n) {
int i=0,j=2*n-1;
for (;j-i>=1;i++,j--) {
for (int k=0;k<2*n-1;k++) {
if(i<=k&&k<j)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
}
}
有规律
代码如下:
#include<stdio.h>
int main()
{
int i,j,k;
for(i=5; i>0; i--)
{
for(k=5;k>i;k--)
printf("%c",' ');
for(j=1; j<=2*i-1; j++)
printf("%c",'*');
printf("\n");
}
}
‘*’的个数刚好符合 2*i-1 (1<=i<=5)
空格的个数符合5-i个 (1<=i<=5)
第一行输出的‘#’数目:2*n-1;
第n行左侧输出的空格数目:n;
请输入倒三角层数:8
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
int t=0;
printf("请输入倒三角层数:");
scanf("%d",&n);
while(n>0)
{
for(int j=0;j<t;j++)
printf(" ");
t++;
for(int i=0;i<2*n-1;i++)
printf("#");
n--;
printf("\n");}
return 0;
}
###############
#############
###########
#########
#######
#####
###
#
可以采用递归的方法来做,我博客中有文章详细解释的,欢迎浏览