demo1:

package main

import "fmt"

func print() {
for i := 1; i < 10; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d * %d = %d ", j, i, i*j)
}
fmt.Println()
}
} func main() {
print()
}

分析:

1.基本的99乘法表打印练习

demo2:

package main

import "fmt"

func main() {
const min int = 1
const max int = 10000
process(min, max)
} func process(min, max int) {
for i := min; i <= max; i++ {
if perfect(i) {
fmt.Printf("%d是完数\n", i)
}
}
} func perfect(n int) bool {
var sum int = 0
for i := 1; i < n; i++ {
if n%i == 0 {
sum += i
}
}
return n == sum
}

分析:

1.判断1-10000有哪些完数的练习

demo3:

package main

import "fmt"

func main() {
const str1 string = "helloolleh"
const str2 string = "helloworld"
process(str1)
process(str2) const str3 string = "上海自来水来自海上"
const str4 string = "我喜欢学习Go"
const str5 string = "go上海自来水来自海上og"
essential(str3)
essential(str4)
essential(str5)
} //可以正常处理英文字符串,无法处理中文
func process(str string) {
var flag bool = true
for i := 0; i < len(str); i++ {
if i == len(str)/2 {
break
}
last := len(str) - i - 1
if str[i] != str[last] {
flag = false
}
}
if flag {
fmt.Printf("%s 是回文字符串\n", str)
} else {
fmt.Printf("%s 不是回文字符串\n", str)
}
return
} //正常处理所有的字符串
func essential(str string) {
tmp := []rune(str)
lenth := len(tmp)
var flag bool = true
for i, _ := range tmp {
if i == lenth/2 {
break
}
last := lenth - i - 1
if tmp[i] != tmp[last] {
flag = false
}
}
if flag {
fmt.Printf("%s 是回文字符串\n", str)
} else {
fmt.Printf("%s 不是回文字符串\n", str)
}
return
}

分析:

1.判断是否是回文字符串的练习

2.尤其注意中文字符的处理,使用rune

demo4:

package main

import (
"bufio"
"fmt"
"os"
) func main() {
result := read()
worldCount, spaceCount, numberCount, otherCount := count(result)
fmt.Printf("字母:%d\n空格:%d\n数字:%d\n其他字符:%d\n", worldCount, spaceCount, numberCount, otherCount)
} func read() string {
reader := bufio.NewReader(os.Stdin)
result, _, err := reader.ReadLine()
if err != nil {
fmt.Println("read from console error:", err)
return ""
}
return string(result)
} func count(str string) (worldCount, spaceCount, numberCount, otherCount int) {
tmp := []rune(str)
for _, v := range tmp {
switch {
case v >= 'a' && v <= 'z':
fallthrough
case v >= 'A' && v <= 'Z':
worldCount++
case v == ' ':
spaceCount++
case v >= '0' && v <= '9':
numberCount++
default:
otherCount++
}
}
return
}

分析:

1.读取一串输入并对字符进行技术的程序

2.对常用其他包的简单使用

demo5:

package main

import "fmt"

func main() {
var a string = "92233720368547758075"
var b string = "129223372036854775807"
result := bigIntegerAdd(a, b)
fmt.Printf("%s + %s = %s\n", a, b, result)
} func bigIntegerAdd(a, b string) (result string) {
if len(a) == 0 || len(b) == 0 {
result = "0"
return
}
var index1 int = len(a) - 1
var index2 int = len(b) - 1
var left int
for index1 >= 0 && index2 >= 0 {
c1 := a[index1] - '0'
c2 := b[index2] - '0'
sum := int(c1) + int(c2) + left
if sum >= 10 {
left = 1
} else {
left = 0
}
c3 := (sum % 10) + '0'
result = fmt.Sprintf("%c%s", c3, result)
index1--
index2--
}
for index1 >= 0 {
c1 := a[index1] - '0'
sum := int(c1) + left
if sum >= 10 {
left = 1
} else {
left = 0
}
c3 := (sum % 10) + '0'
result = fmt.Sprintf("%c%s", c3, result)
index1--
}
for index2 >= 0 {
c2 := b[index2] - '0'
sum := int(c2) + left
if sum >= 10 {
left = 1
} else {
left = 0
}
c3 := (sum % 10) + '0'
result = fmt.Sprintf("%c%s", c3, result)
index2--
}
if left == 1 {
result = fmt.Sprintf("1%s", result)
}
return
}

分析:

1.Go实现大数相加,面试常见问题

2.实现思想:人的思维,从个位依此加到最高位

demo6:

package main

import "fmt"

func test() int {
defer func() {
if err := recover(); err != nil {
fmt.Println(err)
}
}()
b := 0
a := 100 / b
return a
} func main() {
test()
}

分析:

1.Go没有try,catch语句,应该用这里的方式

demo7:

package main

import "fmt"

func test() {
i := new(int)
fmt.Println(i) //0xc000012088
fmt.Println(*i) // s1 := new([]int)
*s1 = make([]int, 5)
fmt.Println(s1) //&[0 0 0 0 0] s2 := make([]int, 5)
fmt.Println(s2) //[0 0 0 0 0] (*s1)[0] = 100
s2[0] = 100
fmt.Println(s1) //&[100 0 0 0 0]
fmt.Println(s2) //&[100 0 0 0 0]
} func main() {
test()
}

分析:

1.make和new的区别练习

Go基础(3)的更多相关文章

  1. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  2. node-webkit 环境搭建与基础demo

    首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. Golang, 以17个简短代码片段,切底弄懂 channel 基础

    (原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...

  5. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  6. HTTPS 互联网世界的安全基础

    近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...

  7. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  8. .NetCore MVC中的路由(1)路由配置基础

    .NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...

  9. .NET基础拾遗(5)多线程开发基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

  10. .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]

    方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...

随机推荐

  1. 如何打开JSP文件/JS和JSP的区别/Servlet的本质是什么,是如何工作的?

    一:如何打开JSP文件 1.安装JAVA 2.安装TOMCAT——免费开源的JAVAWEB服务器 3.安装ECLIPSE 二:JS和JSP区别 名字: JS:JavaScript JSP:Java S ...

  2. 单点登录 Ucenter 分析

    原文:http://blog.csdn.net/ebw123/article/details/9417231 首先我们先来了解下 Ucenter登录步骤 1.用户登录discuz,通过logging. ...

  3. 最短寻道优先算法----SSTF算法

    请珍惜小编劳动成果,该文章为小编原创,转载请注明出处. 该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短 java代码实现如下: import java.ut ...

  4. linux下如何配置yum源

    first:挂载本地镜像文件(挂载:意为将某个文件放置在系统的一个目录下) mkdir     /media/cdrom  #新建镜像文件挂载目录 cd         /usr/local/src  ...

  5. SpringBoot JMS(ActiveMQ) 使用实践

    ActiveMQ 1. 下载windows办的activeMQ后,在以下目录可以启动: 2. 启动后会有以下提示 3. 所以我们可以通过http://localhost:8161访问管理页面,通过tc ...

  6. 第一篇:tz师兄【附面试题总结】

    本篇文章包含三部分: 师兄故事 面试经历 面试资源分享 师兄故事 tz师兄是一位及其低调的小伙,也是在班级中我比较欣赏的少年. 2017年大学毕业,原资源勘察工程专业. 大学期间自学java,之后进入 ...

  7. 【线段树】Bzoj1798 [AHOI2009] 维护序列

    Description 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2 ...

  8. BZOJ_4765_普通计算姬_分块+dfs序+树状数组

    BZOJ_4765_普通计算姬_分块 Description "奋战三星期,造台计算机".小G响应号召,花了三小时造了台普通计算姬.普通计算姬比普通计算机要厉害一些 .普通计算机能 ...

  9. Windows上安装配置SSH教程(5)——win10下使用Cygwin+Expect自动登陆ssh

    1.安装Cygwin,安装上Tcl和Expect两个工具. 可以使用apt-cyg命令安装,也可以在安装Cygwin的时候选中这两个包. 命令安装的话使用下面的两个命令: apt-cyg instal ...

  10. python3——模块

    今天去听一个关于创业的讲座,心疼自己在那个地方站了 一个多小时(QAQ)我是心疼自己傻呀! 手机打王者之后就没有电了,一直站在那儿! 不过最后还是结束了,以后你们也会有很多讲座的,希望学弟学妹好好听讲 ...