添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

L1-013 计算阶乘和 (10 分) Go语言|Golang

对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。

输入格式:

输入在一行中给出一个不超过10的正整数N。

输出格式:

在一行中输出S的值。

输入样例:

3

结尾无空行

输出样例:

结尾无空行

思路:

基础的循环语句的应用

代码如下:

package main
import "fmt"
func main() {
    var num int
    _,_= fmt.Scan(&num)
    sum:=0
    for i:=1;i<=num;i++{
        sum += JieCheng(i) 
    fmt.Println(sum)
func JieCheng(num int) int {
    tmp:=1
    for {
        if num==1 { // 当最后是1的时候就直接退出循环
            break
        tmp = num*tmp  // 不断进行累乘的操作
        num--  // 对这个数进行-1
    return tmp
                Go语言入门之数据结构详细介绍以及代码示例
            
Go语言是一种静态类型、编译型语言,支持面向对象、过程式和函数式编程风格。它的语法简洁、易于理解,特别适合于开发网络服务和分布式系统。Go语言标准库提供了丰富的数据结构和算法,包括数组、切片、映射、链表、栈、队列、堆、树等常用数据结构。本文将详细介绍Go语言中常用的数据结构,包括定义、初始化、插入、删除、查找、排序等操作,并提供代码示例。
清源正本,鉴往知来,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中引用类型是否进行引用传递EP18
开篇明义,Go lang中从来就不存在所谓的“引用传递”,从来就只有一种变量传递方式,那就是值传递。因为引用传递的前提是存在“引用变量”,但是Go lang中从来就没有出现过所谓的“引用变量”,所以也就不可能存在引用传递这种变量传递的方式。
延宕执行,妙用无穷,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中defer关键字延迟调用机制使用EP17
先行定义,延后执行。不得不佩服Go lang设计者天才的设计,事实上,defer关键字就相当于Python中的try{ ...}except{ ...}finally{...}结构设计中的finally语法块,函数结束时强制执行的代码逻辑,但是defer在语法结构上更加优雅,在函数退出前统一执行,可以随时增加defer语句,多用于系统资源的释放以及相关善后工作。当然了,这种流程结构是必须的,形式上可以不同,但底层原理是类似的,Golang 选择了更简约的defer,避免多级嵌套的try except finally 结构。
仙人指路,引而不发,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中New和Make函数的使用背景和区别EP16
Golang只有二十五个系统保留关键字,二十几个系统内置函数,加起来只有五十个左右需要记住的关键字,纵观编程宇宙,无人能出其右。其中还有一些保留关键字属于“锦上添花”,什么叫锦上添花?就是从表面上看,就算没有,也无伤大雅,不影响业务或者逻辑的实现,比如lambda表达式之类,没有也无所谓,但在初始化数据结构的时候,我们无法避免地,会谈及两个内置函数:New和Make。