亚搏app官方网站 2026-04-08: 贯串非零数字并乘以其数字和Ⅰ。用go话语, 给定一个

发布日期:2026-04-09 04:36    点击次数:202

亚搏app官方网站 2026-04-08: 贯串非零数字并乘以其数字和Ⅰ。用go话语, 给定一个

1.从 n 的十进制暗意中规律取出通盘“非零数字”,保捏它们出现的先后次序,把这些数字首尾衔接得到一个新整数 x;淌若 n 里莫得非零数字,则令 x = 0。

2.缱绻 x 的所稀有字之和,记为 sum。

3.复返 x * sum 的扫尾。

0

输入: n = 10203004。

输出: 12340。

诠释注解:

非零数字是 1、2、3 和 4。因此,x = 1234。

数字和为 sum = 1 + 2 + 3 + 4 = 10。

因此,谜底是 x * sum = 1234 * 10 = 12340。

题目来独力扣3754。

代码引申经过分步戒备形色

给定输入整数 n = 10203004,严格按照题目要乞降代码逻辑,分格式拆解引申经过:

第一步:运更正变量

函数 sumAndMultiply 罗致参数 10203004 后,先运更正3个中枢变量:

1. x = 0:用于拼接非零数字,最终得到新整数

2. sum = 0:用于累加非零数字的和

3. pow10 = 1:用于死心数字拼接的位数(个位、十位、百位...)

第二步:轮回拆分数字(逐位科罚整数n)

轮回条目:n > 0,每次轮回将 n 除以10,去掉临了一位,直到 n 变为0,从右到左逐位取出数字:

1. 第一次轮回

• 面前 n = 10203004,取临了一位:10203004 % 10 = 4(非零数字)

• 拼接:x = 0 + 4×1 = 4

• 乞降:sum = 0 + 4 = 4

• 位数进位:pow10 = 1×10 = 10

• 更新n:n = 10203004 /10 = 1020300

2. 第二次轮回

• 面前 n = 1020300,取临了一位:1020300  = 0(零数字,跳过通盘操作)

• 更新n:n = 1020300 /10 = 102030

3. 第三次轮回

• 面前 n = 102030,取临了一位:102030  = 0(零数字,跳过)

• 更新n:n = 102030 /10 = 10203

4. 第四次轮回

• 面前 n = 10203,取临了一位:10203  = 3(非零数字)

• 拼接:x = 4 + 3×10 = 34

• 乞降:sum = 4 +3 =7

• 位数进位:pow10 =10×10=100

• 更新n:n=10203/10=1020

5. 第五次轮回

• 面前 n=1020,取临了一位:1020=0(零数字,亚搏app官方网站跳过)

• 更新n:n=1020/10=102

6. 第六次轮回

• 面前 n=102,取临了一位:102=2(非零数字)

• 拼接:x=34 +2×100=234

• 乞降:sum=7+2=9

• 位数进位:pow10=100×10=1000

• 更新n:n=102/10=10

7. 第七次轮回

• 面前 n=10,取临了一位:10=0(零数字,跳过)

• 更新n:n=10/10=1

8. 第八次轮回

• 面前 n=1,取临了一位:1=1(非零数字)

• 拼接:x=234 +1×1000=1234

• 乞降:sum=9+1=10

• 位数进位:pow10=1000×10=10000

• 更新n:n=1/10=0

第三步:轮回好意思满,缱绻最终扫尾

1. 轮回拒绝:此时 n=0,不欣喜轮回条目,退出轮回

2. 最终值:拼接后的新整数 x=1234,数字和 sum=10

3. 缱绻乘积:1234 × 10 = 12340

4. 复返扫尾:函数将 12340 复返到主函数

第四步:主函数输出扫尾

主函数罗致扫尾 12340 并打印,最终输出:12340

复杂度分析

1. 时辰复杂度

• 代码中枢是逐位遍历整数n的每一位数字,轮回引申的次数即是整数n的十进制位数

• 举例:n=10203004 是8位数,轮回引申8次

• 整数n的最大值为10^9,最多唯有10位数字,轮回次数是常数级

• 论断:时辰复杂度为 O(1)(常数时辰复杂度)

2. 稀疏空间复杂度

• 代码中只界说了x、sum、pow10、d这几个固定数目的变量,莫得使用数组、切片、map等动态数据结构

• 无论输入n是些许,占用的稀疏内存空间皆是固定不变的

• 论断:稀疏空间复杂度为 O(1)(常数空间复杂度)

追想

1. 引申经过:逐位索要数字→过滤零→拼接非零数字→缱绻数字和→求乘积;

2. 时辰复杂度:O(1),仅遍历固定位数的数字;

3. 稀疏空间复杂度:O(1),仅使用固定数目的变量。

Go完满代码如下:

package main

import (

"fmt"

)

func sumAndMultiply(n int)int64 {

x, sum, pow10 := 0, 0, 1

for ; n > 0; n /= 10 {

d := n % 10

if d > 0 {

x += d * pow10

sum += d

pow10 *= 10

}

}

returnint64(x) * int64(sum)

}

func main {

n := 10203004

result := sumAndMultiply(n)

fmt.Println(result)

}

Python完满代码如下:

# -*-coding:utf-8-*-

def sum_and_multiply(n: int) -> int:

x, sum_digits, pow10 = 0, 0, 1

while n > 0:

if d > 0:

x += d * pow10

sum_digits += d

pow10 *= 10

n //= 10

return x * sum_digits

def main:

n = 10203004

result = sum_and_multiply(n)

print(result)

if __name__ == "__main__":

main

C++完满代码如下:

#include

long long sumAndMultiply(int n) {

int x = 0, sum = 0, pow10 = 1;

while (n > 0) {

int d = n % 10;

if (d > 0) {

x += d * pow10;

sum += d;

pow10 *= 10;

}

n /= 10;

}

return static_cast(x) * sum;

}

int main {

int n = 10203004;

long long result = sumAndMultiply(n);

std::cout

return0;

}

咱们肯定东说念主工智能为无为东说念主提供了一种“增强器具”,并勤恳于共享全方向的AI常识。在这里,您不错找到最新的AI科普著作、器具评测、普及效果的心事以及行业瞻念察。

接待柔和“福大大架构师逐日一题”,发音尘可获取口试贵寓亚搏app官方网站,让AI助力您的将来发展。

米兰体育官方网站

 



    Copyright © 1998-2026 亚搏体育官方网站 - YABO™版权所有

    gz-yabo.com 备案号 备案号: 

    技术支持:®亚搏体育  RSS地图 HTML地图