Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "strconv"
- "strings"
- )
- type Data struct {
- ListingNumber []int
- ResultNumber []int
- Number int
- Start int
- }
- func main() {
- fmt.Println("Starting ...")
- data := &Data{}
- data.Start = 5
- data.Running()
- fmt.Println("Result : ",data.ResultNumber)
- }
- func (a *Data) Running() {
- startingProcess := 100
- for len(a.ResultNumber) < a.Start {
- a.Number = startingProcess
- _ = a.OneNumber()
- startingProcess++
- }
- }
- func (a *Data)OneNumber() bool {
- var stop = false
- var one_number = false
- var stateNumber = a.Number
- for !stop {
- num := strconv.Itoa(a.Number)
- b := strings.Split(num,"")
- result := a.Iteration(b)
- if result != 1 {
- // Check value exists or no ? if Exist number not "One Number"
- check := a.Validate(result)
- if check > 1 {
- stop = true
- }
- }else{
- stop = true
- one_number = true
- a.ResultNumber = append(a.ResultNumber, stateNumber)
- }
- }
- return one_number
- }
- func (a *Data)Iteration(data []string) int {
- value := 0
- for _, v := range data {
- number,_ := strconv.Atoi(v)
- value = value + (number*number)
- }
- a.ListingNumber = append(a.ListingNumber,value)
- a.Number = value
- return value
- }
- func (a *Data)Validate(data int) int{
- value := 0
- a.ListingNumber = a.ListingNumber[:cap(a.ListingNumber)]
- for _, v := range a.ListingNumber {
- if v == data {
- value++
- }
- }
- return value
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement