PAT乙 1022 D进制的A+B (GO实现)

解题思路:
1.需要知道进制数的取法,
简单来说十进制转换为八进制,除8取余,直到除数小于8
例如:123 456 8 /579 8
579 % 8 = 3 579/8 = 72
72 % 8 = 0 72/8 = 9
9 % 8 = 1 9/8 =1
1 % 8 = 1
结果为: 1103
2.理解了十进制转八进制,那么其他也就如此了,只要把8替换成其他进制数就可以了

package main

import (
	"fmt"
)

func  main()  {
	var A, B, D int
	var number [100]int
	_, _ = fmt.Scanf("%d %d %d", &A, &B, &D)
	sum := A + B

	i := 0
	for true {
		if sum >= D {
			number[i] = sum % D
			sum = sum / D
			i++
		} else {
			number[i] = sum
			break
		}
	}

	for j:=i; j>0; j-- {
		fmt.Printf("%d", number[j])
	}
	fmt.Println(number[0])
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值