go算法入门(计算n以内的质数的交替计算绝对值的和与差)

编程入门 行业动态 更新时间:2024-10-23 16:28:16

go算法入门(计算n以内的<a href=https://www.elefans.com/category/jswz/34/1764968.html style=质数的交替计算绝对值的和与差)"/>

go算法入门(计算n以内的质数的交替计算绝对值的和与差)

题目:

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 := 0for 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 := 0for 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]

更多推荐

go算法入门(计算n以内的质数的交替计算绝对值的和与差)

本文发布于:2024-03-07 23:00:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1719141.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:质数   绝对值   算法   入门

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!