MST

星途 面试题库

面试题:Go for语句与切片的复杂操作

给定一个整数切片,要求使用for语句对切片中的元素进行筛选,保留能同时被2和3整除的元素,并且在筛选过程中,每处理5个元素就打印一次当前处理的进度(如:已处理5个元素)。请编写完整的Go代码,并阐述你在for循环中采用的策略来实现该功能。
19.3万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

func main() {
    nums := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
    result := make([]int, 0)

    for i, num := range nums {
        if num%2 == 0 && num%3 == 0 {
            result = append(result, num)
        }
        if (i + 1) % 5 == 0 {
            fmt.Printf("已处理 %d 个元素\n", i+1)
        }
    }

    fmt.Println("筛选后的结果:", result)
}

策略阐述

  1. 遍历切片:通过for...range语句遍历给定的整数切片,同时获取元素值num和索引i
  2. 元素筛选:使用条件判断num%2 == 0 && num%3 == 0来确定当前元素是否能同时被2和3整除,如果满足条件,则将该元素追加到结果切片result中。
  3. 进度打印:利用取模运算(i + 1) % 5 == 0判断当前处理的元素个数是否为5的倍数,如果是,则打印当前处理进度信息。
  4. 结果输出:遍历结束后,打印最终筛选后的结果切片result