测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A25649. 整数拆分编程实现给定一个整数n,将n分成两个正整数,使得两个正整数的和等于n且尽可能接近。输入描述输入一个整数n(3≤n≤1000)输出描述按从小到大的顺序输出两个正整数,整数之间以一个空格隔开样例输入5样例输出2 3

填空题 容易

题目描述

整数拆分

编程实现

给定一个整数n,将n分成两个正整数,使得两个正整数的和等于n且尽可能接近。

输入描述

输入一个整数n(3≤n≤1000)

输出描述

按从小到大的顺序输出两个正整数,整数之间以一个空格隔开

样例输入

5

样例输出

2 3

参考答案

n = int(input().strip()) a = n // 2 b = n - a print(f"{a} {b}")

答案解析

输入处理:读取整数n。

计算拆分:

a = n // 2:使用整数除法得到较小的数(向下取整)。

b = n - a:计算另一个数,确保a + b = n。

输出结果:按从小到大的顺序输出a和b。

样例验证

样例输入:5

计算过程:a = 5 // 2 = 2,b = 5 - 2 = 3

输出:2 3(符合样例)

输入:4

计算过程:a = 4 // 2 = 2,b = 4 - 2 = 2

输出:2 2(符合题目要求)

此方案时间复杂度为O(1),高效且正确满足题目要求。

上一题 下一题