Konvertieren Sie eine Dezimalzahl in eine Zeichenfolge (Go)

Inhaltsverzeichnis

Beschreibung

Lösung

Code

Code-exemplarische Vorgehensweise


 

Beschreibung

Implementieren Sie die Konvertierung einer Dezimalzahl in eine Zeichenfolge (verwenden Sie nicht das Paket strconv).

 

Lösung

Teilen Sie die Dezimalzahl von der Einerstelle auf die höchste Ziffer und konvertieren Sie die Ziffern jeder Ziffer vor dem Spleißen in eine Zeichenfolge. Achten Sie auf das Vorzeichen der Ganzzahl.

 

Code

package main


func Itoa(number int) string {
	result := ""
	positive := true
	if number < 0 {
		positive = false
		number = -number
	}

	for {
		if number < 10 {
			result = itoa(number) + result
			break
		}

		temp := number % 10
		result = itoa(temp) + result
		number /= 10
	}

	if !positive {
		result = "-" + result
	}
	return result
}

func itoa(number int) string {
	switch number {
	case 0:
		return "0"
	case 1:
		return "1"
	case 2:
		return "2"
	case 3:
		return "3"
	case 4:
		return "4"
	case 5:
		return "5"
	case 6:
		return "6"
	case 7:
		return "7"
	case 8:
		return "8"
	default:
		return "9"
	}
}

 

Code-exemplarische Vorgehensweise

package main

import "fmt"

func Itoa(number int) string {
   result := ""

   // positive用来记录整数的正负性。为了计算方便在记录正负性后统一将整数转换为非负数。
   positive := true
   if number < 0 {
      positive = false
      number = -number
   }

   for {
      if number < 10 {
         result = itoa(number) + result
         break
      }

      // 不断取整数的末位转换
      temp := number % 10
      result = itoa(temp) + result
      number /= 10
   }

   // 最后对整数的正负性做判断
   if !positive {
      result = "-" + result
   }
   return result
}

// 将个位数转换为字符串
func itoa(number int) string {
   switch number {
   case 0:
      return "0"
   case 1:
      return "1"
   case 2:
      return "2"
   case 3:
      return "3"
   case 4:
      return "4"
   case 5:
      return "5"
   case 6:
      return "6"
   case 7:
      return "7"
   case 8:
      return "8"
   default:
      return "9"
   }
}

// 自测用例
func main() {
   number := 0
   result := Itoa(number)
   fmt.Println(result)
}

Ich denke du magst

Origin blog.csdn.net/TCatTime/article/details/107132659
Empfohlen
Rangfolge