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. DUBBO报错分析—1(连接zookeeper成功,调用方法无反应,不报错)

    思路分析 调用方法时,最后调用执行的是mapper的sql语句,既然调用对应的方法无法获取返回值,多是sql错误,但是并未报sql错误,说明可能是与sql相关的数据源配置错误. 过程调试 经尝试,当直 ...

  2. css中的单冒号和双冒号

    最近突然被别人问起css单冒号和双冒号有什么区别,答曰:"不知道". 虽然还在填坑中,但作为一个跨过了初级的FEer,感觉着实汗颜,刚好今天下午在搜别的问题的时候,突然看到一个对比 ...

  3. java把结果集序列化成json通过out流传给前台步骤

    1.把处理好的list或map序列化成JSON字符 /** * 序列化集合成JSON字符 * @param list * @return */ public static String structu ...

  4. 【BZOJ 2713】[Violet 2]愚蠢的副官&&【BZOJ1183】[Croatian2008]Umnozak——【数位DP】

    题目链接: 2713传送门 1183传送! 题解: 由于看不懂英文题解(十个单词十一个不认识……),所以只能自己想QAQ. 其实乱搞就好= =. 首先我们发现,各位数字乘积要在1e9以下才可能有用,这 ...

  5. BZOJ_1954_Pku3764 The xor-longest Path_Trie树

    Description 给定一棵n个点的带权树,求树上最长的异或和路径 把根到点路径上点权异或和求出来,然后变成了Trie树裸题.   代码: #include <cstdio> #inc ...

  6. B20J_2733_[HNOI2012]永无乡_权值线段树合并

    B20J_2733_[HNOI2012]永无乡_权值线段树合并 Description:n座岛,编号从1到n,每座岛都有自己的独一无二的重要度,按照重要度可以将这n座岛排名,名次用1到 n来表示.某些 ...

  7. BZOJ_2141_排队_树状数组+分块

    BZOJ2141_排队_树状数组+分块 Description 排排坐,吃果果,生果甜嗦嗦,大家笑呵呵.你一个,我一个,大的分给你,小的留给我,吃完果果唱支歌,大家 乐和和.红星幼儿园的小朋友们排起了 ...

  8. CAN总线的显性电平与隐性电平

    读CAN总线的书时,都会涉及到总线电平的问题,CAN总线的电平分为显性电平与隐性电平,这是CAN总线物理层的核心部分,也是总线仲裁的基础.那何为显性,何为隐性呢? 根据孔丙火(微信公众号:孔丙火)的理 ...

  9. Java实现大批量数据导入导出(100W以上) -(二)导出

    使用POI或JXLS导出大数据量(百万级)Excel报表常常面临两个问题: 1. 服务器内存溢出: 2. 一次从数据库查询出这么大数据,查询缓慢. 当然也可以分页查询出数据,分别生成多个Excel打包 ...

  10. ASP.NET Core 实战:基于 Jwt Token 的权限控制全揭露

    一.前言 在涉及到后端项目的开发中,如何实现对于用户权限的管控是需要我们首先考虑的,在实际开发过程中,我们可能会运用一些已经成熟的解决方案帮助我们实现这一功能,而在 Grapefruit.VuCore ...