
main()
{
int n, i, j, k
scanf(%d", &n)
for(i=0 i<n i++) //循环每一行
{
for(j=n - 1 j>0 j--)
printf("%s", " ") //打印行首空格
for(j=0 j<2*n+1 j++)
printf("%s", "*") //打印星号
printf("\n")
}
}
打印杨辉三角图形的Java程序如下
public class H{
public static void main(String[] args) {
int i,j,N=7
int[][] a=new int[N][N]
for(i=0i<Ni++){
a[i][0]=1
a[i][i]=1
}
for(i=2i<Ni++)
for(j=1j<ij++)
a[i][j]=a[i-1][j-1]+a[i-1][j]
for(i=0i<Ni++){
for(j=0j<N-i-1j++){
System.out.print(" ")
}
for(j=0j<i+1j++){
System.out.printf("%-4d",a[i][j])
}
System.out.println()
}
}
}
题主给出的图案,如用matlab来做的话,可以这样来处理。
1、分析给出的图案,可以找到其图形输出规律,即
n=2k-1 %图形递减或递增
2、利用for循环语句,计算图形输出位置【x,y】值
3、使用plot函数绘制图形符号,由于matlab暂时无法显示'$'符号,用'□'来替代,即
plot(x,y,'gs')
4、实现代码
clc
for k=[1 2 3 4 5]
n=(2*k-1)
y=k
for i=1:n
x=i
plot(x,y,'gs','LineWidth',2,'MarkerSize',10,'MarkerEdgeColor','b','MarkerFaceColor',[0.5,0.5,0.5]),hold on
end
end
for k=[4 3 2 1]
n=(2*k-1)
y=10-k
for i=1:n
x=i
plot(x,y,'gs','LineWidth',2,'MarkerSize',10,'MarkerEdgeColor','b','MarkerFaceColor',[0.5,0.5,0.5]),hold on
end
end
axis off
5、运行效果如下所示。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)