金牛区建设局网站,网络服装网站建设,北京软件开发公司哪家专业,八大员考试报名官网版本说明
当前版本号[20231115]。
版本修改说明20231115初版
目录 文章目录 版本说明目录输入起始和结束的正整数#xff0c;求其两个正整数之间的偶数和。题目解题思路代码思路参考代码 两数相加题目解题思路代码思路参考代码 输入起始和结束的正整数#xff0c;求其两个…版本说明
当前版本号[20231115]。
版本修改说明20231115初版
目录 文章目录 版本说明目录输入起始和结束的正整数求其两个正整数之间的偶数和。题目解题思路代码思路参考代码 两数相加题目解题思路代码思路参考代码 输入起始和结束的正整数求其两个正整数之间的偶数和。
题目
输入起始和结束的正整数求其两个正整数之间的偶数和。
解题思路
首先通过input()函数获取用户输入的起始数和结束数。然后将这两个输入的字符串转换为整数类型分别赋值给变量a和b。初始化两个变量sum1和sum2用于存储两种不同计算方式下的偶数和。使用第一个for循环遍历从a到b1的所有整数包括b判断每个整数是否为偶数。如果是偶数则将其加到sum1中并将当前整数加2如果不是偶数则将当前整数加1。这样可以确保在计算偶数和时只考虑偶数。使用第二个for循环遍历从a1到b的所有整数不包括b同样判断每个整数是否为偶数。如果是偶数则将其加到sum2中并将当前整数加2如果不是偶数则将当前整数加1。这样可以确保在计算偶数和时不考虑边界上的奇数。最后输出两种计算方式下的偶数和。
代码思路 首先通过input函数获取用户输入的起始数和结束数并将它们转换为整数类型。然后初始化两个变量sum1和sum2分别用于存储两种不同计算方式下的偶数和。 # 获取用户输入的起始数和结束数
x1 input(请输入起始数)
x2 input(请输入结束数)# 将输入的字符串转换为整数
a int(x1)
b int(x2)# 初始化偶数和为0
sum1 0# 初始化偶数和为0
sum2 0接下来使用for循环遍历从a到b包括b的所有整数。在循环中判断当前整数是否为偶数如果是偶数则将其加到sum1中并将i增加2如果不是偶数则将i增加1。这样可以确保在计算偶数和时只考虑偶数。 # 遍历从a到b包括b的所有整数计算偶数和
for i in range(a, b1):if i % 2 0:sum1 ii 2else:i 1同样地使用另一个for循环遍历从a1到b-1不包括b的所有整数。在循环中同样判断当前整数是否为偶数如果是偶数则将其加到sum2中并将i增加2如果不是偶数则将i增加1。这样可以确保在计算偶数和时不考虑边界上的奇数。 # 遍历从a1到b-1不包括b的所有整数计算偶数和
for i in range(a1, b):if i % 2 0:sum2 ii 2else:i 1最后输出两种计算方式下的偶数和。
# 输出结果
print(str(a)到str(b)之间的偶数和(边界是偶数时算这两个边界)是str(sum1))
print(str(a)到str(b)之间的偶数和(边界是偶数时不算两个边界)是str(sum2))参考代码
这段代码的主要是计算给定范围内包括边界的偶数和。
x1 input(请输入起始数)
x2 input(请输入结束数)
a int(x1)
b int(x2)
sum1 0
for i in range(a, b1):if i % 2 0:sum1 ii 2else:i 1
sum2 0
for i in range(a1, b):if i % 2 0:sum2 ii 2else:i 1
print(str(a)到str(b)之间的偶数和(边界是偶数时算这两个边界)是str(sum1))
print(str(a)到str(b)之间的偶数和(边界是偶数时不算两个边界)是str(sum2))两数相加
题目
给你两个 非空 的链表表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的并且每个节点只能存储 一位 数字。
请你将两个数相加并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外这两个数都不会以 0 开头。
示例 1
输入l1 [2,4,3], l2 [5,6,4] 输出[7,0,8] 解释342 465 807. 示例 2
输入l1 [0], l2 [0] 输出[0]
示例 3
输入l1 [9,9,9,9,9,9,9], l2 [9,9,9,9] 输出[8,9,9,9,0,0,0,1]
提示
每个链表中的节点数在范围 [1, 100] 内 0 Node.val 9 题目数据保证列表表示的数字不含前导零
解题思路
初始化一个空链表用于存储相加后的结果。初始化两个指针分别指向两个链表的头节点。初始化一个变量 carry用于记录进位值。当两个链表都不为空时执行以下操作 a. 计算当前位置的两个节点的值之和加上进位值。 b. 如果和大于等于10更新进位值为1否则进位值为0。 c. 将和对10取余作为新节点的值。 d. 将新节点添加到结果链表的末尾。 e. 移动两个指针到下一个节点。如果其中一个链表已经遍历完但另一个链表还有剩余节点那么将剩余节点的值依次加到结果链表的末尾并考虑进位值。如果最后还有进位值那么在结果链表的末尾添加一个新节点值为进位值。返回结果链表的头节点。
代码思路 首先定义了一个链表节点类ListNode包含节点值val和指向下一个节点的指针next。 # 定义链表节点类
class ListNode:def __init__(self, val0, nextNone):self.val val # 节点值self.next next # 下一个节点然后定义了一个链表类LinkList包含一个头节点head以及初始化链表的方法initList和将链表转换为列表的方法convert_list。
# 定义链表类
class LinkList:def __init__(self):self.head None # 链表头节点# 初始化链表def initList(self, data):self.head ListNode(data[0]) # 创建头节点r self.head # 记录头节点p self.head # 当前节点for i in data[1:]:node ListNode(i) # 创建新节点p.next node # 将新节点添加到当前节点的后面p p.next # 更新当前节点为新节点return r # 返回头节点# 将链表转换为列表def convert_list(self, head):ret [] # 结果列表if head None:return ret # 如果链表为空返回空列表node head # 从头节点开始遍历while node ! None:ret.append(node.val) # 将节点值添加到结果列表中node node.next # 移动到下一个节点return ret # 返回结果列表接着定义了一个解决方案类Solution包含一个方法addTwoNumbers用于实现两个链表的相加操作。
# 定义解决方案类
class Solution:# 两个数字相加def addTwoNumbers(self, l1: ListNode, l2: ListNode) - ListNode:lrr l1 # 记录原始头节点while True:l1.val l1.val l2.val # 计算当前节点的值if l1.next is None and l2.next is None and l1.val 10:break # 如果两个链表都遍历完毕且当前节点的值小于10跳出循环if l1.next is None:l1.next ListNode(0) # 如果当前节点是最后一个节点添加一个值为0的节点if l2.next is None:l2.next ListNode(0) # 如果当前节点是最后一个节点添加一个值为0的节点if l1.val 10:l1.val l1.val - 10 # 如果当前节点的值大于等于10减去10并进位l1.next.val 1 # 进位后的数值加到下一个节点上l1 l1.next # 移动到下一个节点l2 l2.next # 移动到下一个节点return lrr # 返回原始头节点参考代码
class ListNode:def __init__(self, val0, nextNone):self.val valself.next next
class LinkList:def __init__(self):self.headNonedef initList(self, data):self.head ListNode(data[0])rself.headp self.headfor i in data[1:]:node ListNode(i)p.next nodep p.nextreturn rdef convert_list(self,head):ret []if head None:returnnode headwhile node ! None:ret.append(node.val)node node.nextreturn ret
class Solution:def addTwoNumbers(self, l1: ListNode, l2: ListNode) - ListNode:lrr l1while True:l1.val l1.val l2.valif l1.next is None and l2.next is None and l1.val 10:breakif l1.next is None:l1.next ListNode(0)if l2.next is None:l2.next ListNode(0)if l1.val 10:l1.val l1.val - 10l1.next.val 1l1 l1.nextl2 l2.nextreturn lrr
# %%
l LinkList()
list1 [2,4,3]
list2 [5,6,4]
l1 l.initList(list1)
l2 l.initList(list2)
s Solution()
print(l.convert_list(s.addTwoNumbers(l1, l2)))