package main
import "fmt"
func main() {
//得到沙漏的图像数量和图像形状
var number, num1, num2 int
var design rune
fmt.Scanf("%d %c", &number, &design)
num1, num2 = num(number)
printnum(num1, design)
printnum1(num1, design)
fmt.Printf("%d\n", num2)
}
//将沙漏看成金字塔结构,利用等差数列求出“金字塔”共有几层
func num(a int) (num, rest int) {
for i := 1; ; i++ {
b := 1 + 2*(i-1)
b1 := 1 + 2*(i)
s := i*(1+b) - 1
s1 := (i+1)*(1+b1) - 1
if s <= a && s1 >= a {
num = i
rest = a - s
return num, rest
}
}
}
//打印倒立沙漏
func printnum(num int, design rune) {
//循环多少层
for i := num; i > 0; i-- {
//每层打印多少个“ ”和符号
//如果是最底层,直接打印1+2(n-1)的符号
if i == num {
for k := 1; k <= 1+2*(i-1
程序设计天梯赛:002 打印沙漏
最新推荐文章于 2023-10-28 11:45:00 发布