我是靠谱客的博主 幸福路灯,最近开发中收集的这篇文章主要介绍go和php搭档,实现两个大数相加(php和golang版本)-Go语言中文社区,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

两个大数相加是常见的面试题,无论是PHP开发,还是golang开发,都是如此。下面分别给出两个大数相加PHP版本和golang版本的实现方案,给有需要的同学提供借鉴,希望对大家有所帮助。

一、PHP语言版本

/**

* add

* a,b should be numeric

* @param $a string

* @param $b string

* @return string

*/

function add($a, $b)

{

$lenA = strlen($a);

$lenB = strlen($b);

$j = 0; //进位数

$re = '';

for ($inxA = $lenA - 1, $inxB = $lenB - 1; ($inxA >= 0 || $inxB >= 0); --$inxA, --$inxB) {

$itemA = ($inxA >= 0) ? (int)$a[$inxA] : 0;

$itemB = ($inxB >= 0) ? (int)$b[$inxB] : 0;

$sum = $itemA + $itemB + $j;

if ($sum > 9) {

$j = 1;

$sum = $sum - 10;

} else {

$j = 0;

}

$re = (string)$sum . $re;

}

if ($j > 0) {

$re = (string)$j . $re;

}

return $re;

}

在使用的时候,直接调用该方法即可。

二、golang版本

package main

import (

"strings"

"os"

"bufio"

"fmt"

"strconv"

)

func bigDataAdd(strA, strB string) (result string) {

lenA := len(strA)

lenB := len(strB)

lenBase := 0

if lenA > lenB {

lenBase = lenA

} else {

lenBase = lenB

}

j := 0 //进位数

result = ""

inxA := lenA - 1

inxB := lenB - 1

itemA := 0

itemB := 0

for inxBase := lenBase - 1; inxBase >= 0 ; inxBase-- {

itemA = 0

if inxA >= 0 {

itemA, _ = strconv.Atoi(string(strA[inxA]))

inxA--

}

itemB = 0

if inxB >= 0 {

itemB, _ = strconv.Atoi(string(strB[inxB]))

inxB--

}

sum := itemA + itemB + j

if sum > 9 {

j = 1

sum = sum - 10

} else {

j = 0

}

result = strconv.Itoa(sum) + result;

}

if j > 0 {

result = strconv.Itoa(j) + result;

}

return

}

func main() {

fmt.Println("Input a+b:")

reader := bufio.NewReader(os.Stdin)

result, _, err := reader.ReadLine()

if err != nil {

fmt.Printf("read from console error: %v", err)

}

strSlice := strings.Split(string(result), "+")

if len(strSlice) != 2 {

fmt.Println("Please input a+b")

}

strNum1 := strings.TrimSpace(strSlice[0])

strNum2 := strings.TrimSpace(strSlice[1])

resMultiply := bigDataAdd(strNum1, strNum2)

fmt.Printf("add result = %sn", resMultiply)

}

执行结果如下所示:

efeb657ad85485689e292925384841b8.png

最后

以上就是幸福路灯为你收集整理的go和php搭档,实现两个大数相加(php和golang版本)-Go语言中文社区的全部内容,希望文章能够帮你解决go和php搭档,实现两个大数相加(php和golang版本)-Go语言中文社区所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部