网易首页 > 网易号 > 正文 申请入驻

2026-10-23:给定数位和的最大整数。用go语言,给定两个非负整数 n 和 s。请在所有位数不超过 n 的非负整数中,找出一个数,使它各个数位

0
分享至

2026-10-23:给定数位和的最大整数。用go语言,给定两个非负整数 n 和 s。请在所有位数不超过 n 的非负整数中,找出一个数,使它各个数位上的数字加起来恰好等于 s,并且这个数要尽可能大。如果找不到符合条件的数,就返回 -1。

1 <= n <= 5。

0 <= s <= 100。

输入: n = 2, s = 9。

输出: 90。

解释:

最多由 2 位数字组成且各位数字之和为 9 的最大整数是 90。

题目来自力扣4000。

分步骤过程

  1. 1.先判断是否可能构造

  • • 一个数最多有n位。

  • • 每一位最大只能是9。

  • • 因此最多n位的数,各位数字之和最大是n * 9。

  • • 如果目标和s大于n * 9,说明即使每一位都放 9,也凑不到s,因此不存在符合条件的数,直接返回-1。

2.计算需要用多少个 9

  • • 用s除以9,得到商和余数。

  • • 商表示可以先用多少个数字 9。

  • • 余数表示用完整数个 9 之后,还剩下多少数字和需要安排。

  • • 例如s = 9时,商为 1,余数为 0,表示可以用一个 9。

3.先构造由若干个 9 组成的高位部分

  • • 如果有q = s / 9个 9,就先构造一个由q个 9 组成的数。

  • • 例如q = 1时得到9;q = 2时得到99。

  • • 这一步的目的是把最大的数字尽量放在高位,使最终整数尽可能大。

4.处理余数

  • • 如果s除以 9 的余数大于 0,说明除了若干个 9 之外,还需要再放一个数字,这个数字就是余数。

  • • 把这个余数接在前面已经构造好的若干个 9 的后面。

  • • 因为多使用了一位数字,所以可用的剩余位数要减少 1。

  • • 例如如果已经有若干个 9,余数为 6,就会形成“……9 6”的形式。

  • • 如果余数为 0,则不需要追加数字,也不减少剩余位数。

5.剩余低位全部补 0

  • • 此时已经安排了若干个 9,可能还安排了一个余数。

  • • 为了让整数尽可能大,已经使用的高位不能再变小;剩余的低位对数值影响最小,因此全部补 0。

  • • 计算还需要补多少个 0:用当前剩余可用位数减去已经使用的 9 的个数。

  • • 在数值后面补相应数量的 0,相当于把原数乘以 10 的若干次幂。

  • • 补 0 后,总位数不会超过n,并且不会改变各位数字之和。

6.返回构造出的整数

  • • 最终得到的数满足:

    • • 位数不超过n;

    • • 各位数字之和等于s;

    • • 在所有满足条件的数中,高位尽量由 9 占据,因此数值最大。

  • • 如果前面判断不可能,则返回-1。

用示例说明

输入:

  • •n = 2

  • •s = 9

过程:

  1. 1. 最大数位和为2 * 9 = 18,9 <= 18,所以可能存在。

  2. 2.9 / 9 = 1,余数为0,说明可以用一个 9。

  3. 3. 构造出一个 9。

  4. 4. 余数为 0,不需要追加其他数字。

  5. 5. 当前最多 2 位,已经用了 1 位,还剩余 1 位,低位补 0。

  6. 6. 得到90。

因此输出为90。

复杂度分析

  • •总时间复杂度:
    在题目约束1 <= n <= 5下,涉及的位数和幂运算规模都非常小,可以视为常数时间,即O(1)。
    如果按一般位数n来看,构造和补 0 的过程与位数相关,可描述为O(n),但在本题约束下仍是常数级。

  • •总额外空间复杂度:
    整个过程中只使用了少量整数变量来保存商、余数、中间构造结果等,没有使用与输入规模相关的额外数据结构,因此额外空间复杂度为O(1)。

Go完整代码如下:

package main

import (
"fmt"
"math"
)

func largestInteger(n, s int)int {
if s > n*9 {
return-1
}

ans := int(math.Pow10(s/9)) - 1// 填 9
if s%9 > 0 {
ans = ans*10 + s%9// 填 s%9
n--
}
return ans * int(math.Pow10(n-s/9)) // 填 0
}

func main() {
n := 2
s := 9
result := largestInteger(n, s)
fmt.Println(result)
}

Python完整代码如下:

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

def largest_integer(n: int, s: int) -> int:
if s > n * 9:
return-1

ans = 10 ** (s // 9) - 1 # 填 9
if s % 9 > 0:
ans = ans * 10 + s % 9 # 填 s % 9
n -= 1

return ans * (10 ** (n - s // 9)) # 填 0

def main():
n = 2
s = 9
result = largest_integer(n, s)
print(result)

if __name__ == "__main__":
main()

C++完整代码如下:

  


long long pow10_int(int e) {
long long r = 1;
for (int i = 0; i < e; ++i) r *= 10;
return r;
}

long long largestInteger(int n, int s) {
if (s > n * 9) {
return-1;
}

long long ans = pow10_int(s / 9) - 1; // 填 9
if (s % 9 > 0) {
ans = ans * 10 + s % 9; // 填 s % 9
n--;
}
return ans * pow10_int(n - s / 9); // 填 0
}

int main() {
int n = 2;
int s = 9;
long long result = largestInteger(n, s);
std::cout << result << std::endl;
return0;
}

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中国足协回应姆巴佩发表涉华错误言论

中国足协回应姆巴佩发表涉华错误言论

界面新闻
2026-10-27 20:10:52
贝纳蒂亚:梅西第五、罗德里第四都不配

贝纳蒂亚:梅西第五、罗德里第四都不配

懂球帝
2026-10-28 07:22:07
业绩利好!002636,“一分钟”涨停!

业绩利好!002636,“一分钟”涨停!

中国基金报
2026-10-28 10:21:10
《兰香如故》韩粱冻亡时儿子5岁,林锦岐病亡时儿子13岁,袁绍辉至死无子。后代都没成长起来,但三家都没有没落,林家反倒更上一层楼

《兰香如故》韩粱冻亡时儿子5岁,林锦岐病亡时儿子13岁,袁绍辉至死无子。后代都没成长起来,但三家都没有没落,林家反倒更上一层楼

喵喵的追剧笔记
2026-10-28 10:28:57
火箭1不利2喜讯!2人无缘战雄鹿,申京进步明显,4连胜外还有收获

火箭1不利2喜讯!2人无缘战雄鹿,申京进步明显,4连胜外还有收获

董说体育
2026-10-28 10:23:23
火箭未来七场奠定联盟地位!赢五场拿下森林狼雷霆,西部再无对手

火箭未来七场奠定联盟地位!赢五场拿下森林狼雷霆,西部再无对手

陈赩爱体育
2026-10-28 09:23:55
三星目前“大跳水”的3款手机,最高降幅3560元,用四五年不淘汰

三星目前“大跳水”的3款手机,最高降幅3560元,用四五年不淘汰

小柱解说游戏
2026-10-28 07:22:16
女儿赴泰失联被绑架到妙瓦底折磨近3个月,50万被转走后仍不放人

女儿赴泰失联被绑架到妙瓦底折磨近3个月,50万被转走后仍不放人

映射生活的身影
2026-10-28 09:16:58
“好好学习吧,令爱的长相走不了这条路!”家长晒艺术照,心态崩了!

“好好学习吧,令爱的长相走不了这条路!”家长晒艺术照,心态崩了!

林林先生
2026-10-21 18:10:25
1993年,刘善祥要查李真,被程维高阻拦:他没问题

1993年,刘善祥要查李真,被程维高阻拦:他没问题

贱议你读史
2026-10-27 00:54:05
为建数据中心在芬兰非法砍树40万棵,谷歌:停工致歉,将保护水质并在部分土地重新种树

为建数据中心在芬兰非法砍树40万棵,谷歌:停工致歉,将保护水质并在部分土地重新种树

澎湃新闻
2026-10-27 16:26:27
新赛季打到现在,不得不说,最尴尬的就是德罗赞

新赛季打到现在,不得不说,最尴尬的就是德罗赞

球毛鬼胎
2026-10-27 22:07:28
【独家】自媒体人“徽剑”已于2年前遭买凶遇害,曾公开举报电诈大佬刘忍

【独家】自媒体人“徽剑”已于2年前遭买凶遇害,曾公开举报电诈大佬刘忍

界面新闻
2026-10-27 08:18:04
她18岁嫁给毛主席,温柔贤惠,建国后主席特意为她破例一次!

她18岁嫁给毛主席,温柔贤惠,建国后主席特意为她破例一次!

雍亲王府
2026-10-26 10:55:16
丰田全新中大型SUV曝光,大汉兰达的兄弟车型,搭载2.4T混合动力

丰田全新中大型SUV曝光,大汉兰达的兄弟车型,搭载2.4T混合动力

沙雕小琳琳
2026-10-27 07:59:53
姆巴佩不当言论事件始末

姆巴佩不当言论事件始末

干货收并购
2026-10-27 12:21:16
2027年春节档神仙打架,吴京沈腾强强联手,王宝强新作或是大黑马

2027年春节档神仙打架,吴京沈腾强强联手,王宝强新作或是大黑马

喜欢历史的阿繁
2026-10-28 00:13:57
才一周,就伤成这样!

才一周,就伤成这样!

篮球大图
2026-10-28 09:47:22
公交改革来了!财政不再全部兜底,以后乘车、老年优惠会变吗?

公交改革来了!财政不再全部兜底,以后乘车、老年优惠会变吗?

混沌录
2026-10-22 22:47:13
名门之后!布泽尔你太狠,21世纪独一无二的纪录,被你实现了

名门之后!布泽尔你太狠,21世纪独一无二的纪录,被你实现了

大西体育
2026-10-27 12:33:34
2026-10-28 12:00:49
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1540文章数 84关注度
往期回顾 全部

科技要闻

AI世界开口说话!谷歌新模型Genie 4有多神

头条要闻

媒体:东盟防长扩大会中国防长不去 中方代表身份披露

头条要闻

媒体:东盟防长扩大会中国防长不去 中方代表身份披露

体育要闻

0胜4负与篮网国王一桌 热火字母哥赌错了?

娱乐要闻

王心凌近况!分手已9年,如今还是单身

财经要闻

解密 “速成车”:一辆车怎样更快造出来?

汽车要闻

宾利MULLINER再展定制实力 推哥白尼主题限量版车型

态度原创

教育
家居
亲子
艺术
数码

教育要闻

什么是小学生运动?

家居要闻

2026建博会(广州) 公装联探展交流活动

亲子要闻

孩子蛀牙不用钻了?只需10秒,涂一种药液很多就好了!

艺术要闻

寒江不只有孤隐,风雪里有一秤人间 —— 读朱邦《丰溪渔隐图》

数码要闻

科赋发布CRAS V RGB PRIME DDR5内存模组,可选6000CL26、8000CL38

无障碍浏览 进入关怀版