2023-03-29 04:07PM
题目:
special_sum(10) => 1,2,3,5,7 的和
special_sum(20) => 1,2,3,5,7,11,13,17,19 的和
such as
special_sum(10) => 1,2,3,5,7 的和
首先,数字是1,2,3,5,7 然后我们做变换,1,-2,3,-5,7 (正,负,正,负,正 ...)
然后加和,1-2+3-5+7=4
代码1如下(带日志):
package main
import "fmt"
func prime_number(prime int)[]int{
array := []int{}
if prime==1{
array = append(array, 1)
}else if prime==2{
array = append(array, 1,2)
}else if prime>=2{
array = append(array,1,2)
}
for i := 2; i < prime; i++{
for k := 2; k < i; k++{
if i%k==0{
break;
}else{
if k+1==i{
array = append(array, i)
}
}
}
}
return array
}
//第一步先用for循环遍历数组
//第二步再用if(求余)判断数组里面的某个元素是奇则为负,是偶则为正
//第三在奇里面相减,在偶里面相加
func add_subtract(array []int)int{
length := len(array)
fmt.Println(array)
sum := 0
for j := 1; j <= length; j++{
fmt.Println("j:", j)
if j%2==0{
fmt.Println("j:", j)
fmt.Println("相减之前", array, "sum:", sum)
sum -= array[j-1]
fmt.Println(" 相减array:", array, "sum:", sum, "===相减lenth-j:", array[j])
}else{
fmt.Println("jjjjjjj:", j)
fmt.Println("相加之前:", array, "sum:", sum)
sum += array[j-1]
fmt.Println("相加array:", array, "sum:", sum, "相加lenth-j:", array[j-1])
}
}
fmt.Println(sum)
return sum
}
func main() {
ZhiShu := prime_number(10)
sum := add_subtract(ZhiShu)
fmt.Println("=======sum:", sum)
fmt.Println("====:", ZhiShu)
}
结果:
[1 2 3 5 7]
j: 1
jjjjjjj: 1
相加之前: [1 2 3 5 7] sum: 0
相加array: [1 2 3 5 7] sum: 1 相加lenth-j: 1
j: 2
j: 2
相减之前 [1 2 3 5 7] sum: 1
相减array: [1 2 3 5 7] sum: -1 ===相减lenth-j: 3
j: 3
jjjjjjj: 3
相加之前: [1 2 3 5 7] sum: -1
相加array: [1 2 3 5 7] sum: 2 相加lenth-j: 3
j: 4
j: 4
相减之前 [1 2 3 5 7] sum: 2
相减array: [1 2 3 5 7] sum: -3 ===相减lenth-j: 7
j: 5
jjjjjjj: 5
相加之前: [1 2 3 5 7] sum: -3
相加array: [1 2 3 5 7] sum: 4 相加lenth-j: 7
4
=======sum: 4
====: [1 2 3 5 7]
代码2如下:
package main
import "fmt"
func prime_number(prime int)[]int{
array := []int{}
if prime==1{
array = append(array, 1)
}else if prime==2{
array = append(array, 1,2)
}else if prime>=2{
array = append(array, 1,2)
}
for i := 2; i < prime ; i++{
for j := 2; j < i; j++{
if i%j==0{
break;
}else{
if j+1==i{
array = append(array, i)
}
}
}
}
return array
}
//用for循环遍历array数组,使k等于这个数组的元素
//第一步先用for循环遍历数组
//第二步再用if(求余)判断数组里面的某个元素是奇则为负,是偶则为正
//第三在奇里面相减,在偶里面相加
func add_subtract(array []int)int{
length := len(array)
sum := 0
for k := 1; k <= length; k++{
if k%2==0{
sum -= array[k-1]
fmt.Println("k:", k)
fmt.Println("sum:", sum)
}else{
sum += array[k-1]
fmt.Println("k:", k)
fmt.Println("sum:", sum)
}
}
return sum
}
func main() {
ZhiShu := prime_number(20)
sum := add_subtract(ZhiShu)
fmt.Println("sum:", sum)
fmt.Println(ZhiShu)
}
结果:
k: 1
sum: 1
k: 2
sum: -1
k: 3
sum: 2
k: 4
sum: -3
k: 5
sum: 4
k: 6
sum: -7
k: 7
sum: 6
k: 8
sum: -11
k: 9
sum: 8
sum: 8
[1 2 3 5 7 11 13 17 19]
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论