2024年顺德区中小学生程序设计展示活动(GoC组)题目及部分答案

  2024年顺德区中小学生程序设计展示活动(GoC组)于2024年5月17日14:30:00~16:30:00 进行

  下面是1~6题的题目及参考答案:

第一题参考答案: 

int main(){
    for(int i=1;i<=7;i++)
    {
        pen.fd(100).rt(90);
    }
    pen.lt(90).fd(100).rt(90).fd(100);
    return 0;
}

第二题参考答案: 

int main(){
    pen.up().speed(10).moveTo(0,-300);
    pen.r(120,200).fd(200).r(100,200).fd(100).rt(90).bk(50);
    pen.down();
    for(int i=1;i<=3;i++)
    {
        pen.fd(100).lt(120);
    }
    for(int i=1;i<=2;i++)
    {
        pen.fd(100).lt(120);
    }
    pen.setAngle(0);
    pen.fd(100).bk(100).oo(20,1);
    return 0;
}

 

第三题参考答案:

int main(){
    pen.speed(10);
    for(int i=3;i<=6;i++)
    {
        pen.c(i).fd(50).up();
        for(int j=50;j>=10;j-=10)
        {
            pen.fd(j).oo(j,i).fd(j);
        }
        pen.bk(50+(50+40+30+20+10)*2).rt(90).down();
    }
    
    return 0;
}

 

第四题参考答案:

int main(){
    int n;
    cin>>n;
    pen.picU(1).moveTo(-300,0).up().rt(90).speed(10);
    for(int i=0;i<n;i++)
    {
        pen.r(40,40);
        if(i%2==0)
        {
            pen.ee(10,20);
        }
        else
        {
            pen.ee(20,10);
        }
        pen.fd(40);
    }
    return 0;
}

 

第五题参考答案:

int main(){
    int n,a,sum=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a;
        if(a>=300)sum+=a;
    }
    pen.hide().text(sum,1,70);
    return 0;
}

 

 

 第六题参考答案:

int main(){
    pen.up().speed(10).moveTo(-300,-350).rt(90);
    int n,m,gcd=-1;
    cin>>n>>m;
    for(int i=n;i>=1;i--)
    {
        if(n%i==0&&m%i==0)
        {
            gcd=i;
            break;
        }
    }
    for(int i=1;i<=n/gcd;i++)
    {
        for(int j=1;j<=gcd;j++)
        {
            pen.r(20,10,14).fd(20);
        }
        pen.bk(gcd*20).lt(90).fd(10).rt(90);
    }
    for(int i=1;i<=m/gcd;i++)
    {
        for(int j=1;j<=gcd;j++)
        {
            pen.r(20,10,13).fd(20);
        }
        pen.bk(gcd*20).lt(90).fd(10).rt(90);
    }
    return 0;
}

 

### Go语言递归三叉树绘图 在Go语言中实现递归三叉树的绘制可以通过控制台打印字符来模拟图形结构。下面是一个简单的例子,该程序通过递归方式构建并展示一棵三叉树。 ```go package main import ( "fmt" ) // TreeNode 定义节点结构体 type TreeNode struct { value rune left *TreeNode mid *TreeNode right *TreeNode } // NewTree 创建新的三叉树实例 func NewTree(value rune, depth int) *TreeNode { if depth <= 0 { return nil } node := &TreeNode{value: value} subDepth := depth - 1 node.left = NewTree(value+1, subDepth) node.mid = NewTree(value+2, subDepth) node.right = NewTree(value+3, subDepth) return node } // PrintTree 打印三叉树 func (node *TreeNode) PrintTree(prefix string, isTail bool) { if node == nil { return } fmt.Printf("%s%s", prefix, "└── "+string(node.value)) prefix += fmt.Sprintf("\t") PrintChildren(node.left, prefix+"├── ") PrintChildren(node.mid, prefix+"├── ") PrintChildren(node.right, prefix+"└── ") } // PrintChildren 辅助函数用于处理子节点打印逻辑 func PrintChildren(child *TreeNode, prefix string) { if child != nil { child.PrintTree(prefix, true) } else { fmt.Println(prefix[:len(prefix)-4] + "nil") } } func main() { rootValue := 'A' treeDepth := 3 // 可调整深度以观察不同大小的树形结构 rootNode := NewTree(rootValue, treeDepth) rootNode.PrintTree("", false) } ``` 此代码创建了一个基于给定深度参数`treeDepth`的三叉树,并使用自定义方法`PrintTree()`遍历这棵树,在终端上逐层显示其内容。注意这里为了简化起见,采用字母作为节点值;实际应用时可以根据需求修改成其他类型的数值或对象[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值