Advertisement
Guest User

script

a guest
Apr 6th, 2020
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.42 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "strconv"
  6.     "strings"
  7. )
  8.  
  9. type Data struct {
  10.     ListingNumber []int
  11.     ResultNumber []int
  12.     Number int
  13.     Start int
  14. }
  15.  
  16. func main() {
  17.     fmt.Println("Starting ...")
  18.     data := &Data{}
  19.  
  20.     data.Start = 5
  21.     data.Running()
  22.  
  23.     fmt.Println("Result : ",data.ResultNumber)
  24. }
  25.  
  26. func (a *Data) Running() {
  27.     startingProcess := 100
  28.  
  29.     for len(a.ResultNumber) < a.Start {
  30.         a.Number = startingProcess
  31.         _ = a.OneNumber()
  32.         startingProcess++
  33.     }
  34. }
  35.  
  36. func (a *Data)OneNumber() bool {
  37.     var stop = false
  38.     var one_number = false
  39.     var stateNumber = a.Number
  40.    
  41.     for !stop {
  42.         num := strconv.Itoa(a.Number)
  43.         b := strings.Split(num,"")
  44.         result := a.Iteration(b)
  45.  
  46.         if result != 1 {
  47.             // Check value exists or no ? if Exist number not "One Number"
  48.             check := a.Validate(result)
  49.             if check > 1 {
  50.                 stop = true
  51.             }
  52.         }else{
  53.             stop = true
  54.             one_number = true
  55.             a.ResultNumber = append(a.ResultNumber, stateNumber)
  56.         }
  57.     }
  58.  
  59.     return one_number
  60. }
  61.  
  62. func (a *Data)Iteration(data []string) int {
  63.     value := 0
  64.     for _, v := range data {
  65.         number,_ := strconv.Atoi(v)
  66.         value = value + (number*number)
  67.     }
  68.  
  69.     a.ListingNumber = append(a.ListingNumber,value)
  70.     a.Number = value
  71.     return value
  72. }
  73.  
  74. func (a *Data)Validate(data int) int{
  75.     value := 0
  76.     a.ListingNumber = a.ListingNumber[:cap(a.ListingNumber)]
  77.     for _, v := range a.ListingNumber {
  78.         if v == data {
  79.             value++
  80.         }
  81.     }
  82.  
  83.     return value
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement