已知:
i=1,x=1/2
i=2,x=1/4
i=3,x=3/4
i=4,x=1/8
i=5,x=3/8
i=6,x=5/8
i=7,x=7/8
i=8,x=1/16
找出规律,并实现方法
找规律:
1、根据输入值规律
根据输入值找到2^n < i < 2^m
2、分子规律
1 = 2 * 0 + 1
1 = 2 * 0 + 1
3 = 2 * 1 + 1
1 = 2 * 0 + 1
其规律为:
分子 = 2*(i%(2^n)) + 1
3、分母规律
2 = 2^1
4 = 2^2
8 = 2^3
16 = 2^4
其规律为:
2^m
Swift 代码实现
func pattern(i: Int) -> String {
var n = 0
var m = 2
for j in 0...i {
if i >= 2<<j {
n = j
} else {
m = j
break
}
}
let molecule = 2*(i%(2<<n)) + 1
let denominator = 2<<m
let str = "\(molecule)/\(denominator)"
return str
}