主体
引用
- "fmt"
- "io/ioutil"
- "os"
- "strconv"
- "strings"
模式 :
双色球
- 期号: string
- 红: string
- 蓝: string
双色球
期号: string 红: string 蓝: string
主体:
类型:
输入:
输出:
[jump](# 读文件)
反向取出每一期 [^1],
前五期
计算[^1]每个红球平均值,
- 同时查找有哪些期符合条件,条件是:与当期重3个以上,或3红+1蓝
打开`文件`。出错时,打印`返回信息`,并结束
取内容,给指针。出错时,打印`返回信息`,并结束
定义:
a,b是双色球
结果, 临时是字符串
总值5是整数组,长为6
平均值5是64位浮点组,长为6
没算完是逻辑型,值为真
l是整数型
---
指针转字符串给ssq
取ssq的长给长
取ssq[0:7]给a.期号
取ssq[8:25]给a.红
取ssq[27:29]给a.蓝
取a.红值()给:总值5[0], 总值5[1], 总值5[2], 总值5[3], 总值5[4], 总值5[5]
//打印a的红
//打印总值5
将"当期:" + a.期号 + " " + a.红 + " " + a.蓝 + "\r\n\r\n"加入结果
从i到长,i的值31,每次加31:
取ssq[i : i+7]给b的期号
取ssq[i+8 : i+25]给b.红
取ssq[i+27 : i+29]给b.蓝
当没算完时:
当l < 4时:
取b.红值()给t1, t2, t3, t4, t5, t6
将t1累加入总值5[0]
将t2累加入总值5[1]
将t3累加入总值5[2]
将t4累加入总值5[3]
将t5累加入总值5[4]
将t6累加入总值5[5]
//打印总值5
l++
否则:
从i到6,每次加1:
平均值5[i]为:总值5[i]/5
---
//fmt.Println(平均值5)
没算完为:false
s 是 ""
循环6次:
s 累加:strconv.FormatFloat(平均值5[i], 'f', 3, 32) + " "
---
结果累加: "平均值5:" + s + "\r\n\r\n"
结果累加: 临时
---
j 为: 字符串相似度(a.红, b.红)
条件 :
当j为3时:
当 a.蓝 != b.蓝时:跳出
下一行
当 j > 3:
当没算完:
临时累加:b.红 + " " + b.蓝 + " ## " + 取数(ssq, i-31, 3) + "\r\n"
否者:
结果累加: b.红 + " " + b.蓝 + " ## " + 取数(ssq, i-31, 3) + "\r\n"
默认:
---
i是: 找蓝(ssq, a.蓝)
结果累加: "蓝号:\r\n后:" + 取数(ssq, i-31, 2) + "\r\n本:" + 取数(ssq, i, 2) + "\r\n前1:" + 取数(ssq, i+31, 2) + "\r\n前2:" + 取数(ssq, i+31*2, 2) + "\r\n"
err = ioutil.WriteFile("结果.txt", []byte(结果), 0666)
if err != nil {
fmt.Println("写文件出错")
}
}
字符串相似度:
类型 :
输入 : s1 , s2 : string
输出 : int
j := 0
s := strings.Split(s1, " ")
for _, v := range s {
if strings.Contains(s2, v) {
j++
}
}
return j
红值
类型 :a *双色球
输入 :
输出 : int, int, int, int, int, int
s := strings.Split(a.红, " ")
t1, _ := strconv.Atoi(s[0])
t2, _ := strconv.Atoi(s[1])
t3, _ := strconv.Atoi(s[2])
t4, _ := strconv.Atoi(s[3])
t5, _ := strconv.Atoi(s[4])
t6, _ := strconv.Atoi(s[5])
return t1, t2, t3, t4, t5, t6
去回车
类型 :
输入 : s string
输出 : string
return strings.Replace(s, "\r\n", " ", -1)
取数
类型 :
输入 :s string, i, j int
输出 : string
switch j {
case 1:
return s[i+8 : i+25]
case 2:
return s[i+27 : i+29]
case 3:
return s[i+8:i+25] + " " + s[i+27:i+29]
default:
return s[i:i+7] + " " + s[i+8:i+25] + " " + s[i+27:i+29]
}
找蓝
类型 :
输入 :s, a蓝 string
输出 : int
for i := 31; i < len(s); i += 31 {
b蓝 := s[i+27 : i+29]
if a蓝 == b蓝 {
return i
}
}
return -1
读文件
| $1 | \n|^ | |
|---|---|---|
| $2 | \n|$ | |
| $加载 | “读取” + #模式A + “到” + #模式B | |
#模式A.检查,!! #模式A.出错(!)。
#模式B.读取(模式A.名字),! ! #模式B.出错(!)。
文件是"双色球.txt"
打开`文件`。出错时,打印`返回信息`,并结束
取内容,给指针。出错时,打印`返回信息`,并结束
来源:oschina
链接:https://my.oschina.net/u/1455228/blog/3156403