编写一个程序,输入一个正整数n,在屏幕上用@,打印以n为边长的正六边形。
时间: 2023-04-27 08:03:07 浏览: 225
以下是Python代码实现:
n = int(input("请输入正整数n:"))
# 打印正六边形上半部分
for i in range(n):
for j in range(n-i-1):
print(" ", end="")
for j in range(i+1):
print("@ ", end="")
print()
# 打印正六边形下半部分
for i in range(n-2, -1, -1):
for j in range(n-i-1):
print(" ", end="")
for j in range(i+1):
print("@ ", end="")
print()
输出结果如下:
请输入正整数n:5
@
@ @
@ @ @
@ @ @ @
@ @ @ @ @
@ @ @ @
@ @ @
@ @
@
解释一下代码:
首先输入一个正整数n,然后分别打印正六边形的上半部分和下半部分。上半部分从第一行开始,每一行前面都有n-i-1个空格,然后打印i+1个@和一个空格,最后换行。下半部分从倒数第二行开始,每一行前面的空格数和上半部分相同,然后打印i+1个@和一个空格,最后换行。注意,下半部分的行数比上半部分少1,所以循环的范围是range(n-2, -1, -1)。
相关问题
编写一个程序,输入一个正整数N,在屏幕上用"*"打印以N为边长的正六边形
以下是用 Python 语言编写的程序,可以实现输入一个正整数 N,然后在屏幕上用 "*" 打印以 N 为边长的正六边形:
```
n = int(input("请输入一个正整数N:"))
# 打印正六边形的上半部分
for i in range(n):
# 打印每行前面的空格
for j in range(n - i - 1):
print(" ", end="")
# 打印每行的星号
for j in range(n):
print("* ", end="")
print()
# 打印正六边形的下半部分
for i in range(n - 2, -1, -1):
# 打印每行前面的空格
for j in range(n - i - 1):
print(" ", end="")
# 打印每行的星号
for j in range(n):
print("* ", end="")
print()
```
如果输入的是 5,程序会输出如下的正六边形:
```
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
* * * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * *
```
编写一个c语言程序,输入一个正整数N,在屏幕上用"*"打印以N为边长的正六边形
以下是C语言程序,可以输入一个正整数N,然后在屏幕上用"*"打印以N为边长的正六边形:
```
#include <stdio.h>
int main() {
int n, i, j, k;
printf("请输入一个正整数N:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
for (j = 1; j <= n - i; j++) {
printf(" ");
}
for (k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("\n");
}
for (i = n - 1; i >= 1; i--) {
for (j = 1; j <= n - i; j++) {
printf(" ");
}
for (k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("\n");
}
return 0;
}
```
如果输入N为5,程序将输出以下内容:
```
*
***
*****
*******
*********
*******
*****
***
*
```
希望这个程序能够帮到你!