CSDN每日一题学习训练——Python版(输入起始和结束的正整数,求其两个正整数之间的偶数和、两数相加)
版本说明
当前版本号[20231115]。
| 版本 | 修改说明 |
|---|---|
| 20231115 | 初版 |
目录
文章目录
- 版本说明
- 目录
- 输入起始和结束的正整数,求其两个正整数之间的偶数和。
- 题目
- 解题思路
- 代码思路
- 参考代码
- 两数相加
- 题目
- 解题思路
- 代码思路
- 参考代码
输入起始和结束的正整数,求其两个正整数之间的偶数和。
题目
输入起始和结束的正整数,求其两个正整数之间的偶数和。
解题思路
- 首先,通过
input()函数获取用户输入的起始数和结束数。 - 然后,将这两个输入的字符串转换为整数类型,分别赋值给变量
a和b。 - 初始化两个变量
sum1和sum2,用于存储两种不同计算方式下的偶数和。 - 使用第一个for循环遍历从
a到b+1的所有整数(包括b),判断每个整数是否为偶数。如果是偶数,则将其加到sum1中,并将当前整数加2;如果不是偶数,则将当前整数加1。这样可以确保在计算偶数和时,只考虑偶数。 - 使用第二个for循环遍历从
a+1到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, b+1):if i % 2 == 0:sum1 += ii += 2else:i += 1 -
同样地,使用另一个for循环遍历从a+1到b-1(不包括b)的所有整数。在循环中,同样判断当前整数是否为偶数,如果是偶数,则将其加到sum2中,并将i增加2;如果不是偶数,则将i增加1。这样可以确保在计算偶数和时,不考虑边界上的奇数。
# 遍历从a+1到b-1(不包括b)的所有整数,计算偶数和 for i in range(a+1, 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, b+1):if i % 2 == 0:sum1 += ii += 2else:i += 1
sum2 = 0
for i in range(a+1, 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, val=0, next=None):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, val=0, next=None):self.val = valself.next = next
class LinkList:def __init__(self):self.head=Nonedef initList(self, data):self.head = ListNode(data[0])r=self.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)))
相关文章:
CSDN每日一题学习训练——Python版(输入起始和结束的正整数,求其两个正整数之间的偶数和、两数相加)
版本说明 当前版本号[20231115]。 版本修改说明20231115初版 目录 文章目录 版本说明目录输入起始和结束的正整数,求其两个正整数之间的偶数和。题目解题思路代码思路参考代码 两数相加题目解题思路代码思路参考代码 输入起始和结束的正整数,求其两个…...
【论文】基于Hadoop的铁路货运大数据平台设计与应用
点我完整下载:基于Hadoop的铁路货运大数据平台设计与应用.docx 基于Hadoop的铁路货运大数据平台设计与应用 Design and Application of Railway Freight Big Data Platform based on Hadoop 目录 目录 2 摘要 3 关键词 4 第一章 绪论 4 1.1 研究背景 4 1.2 研究目的…...
GoF之代理模式
2023.11.12 代理模式是GoF23种设计模式之一,其作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以…...
post 和get参数 请求
json参数 post请求格式 RestController public class HelloController { //json参数 post 请求RequestMapping("/jsonParam")public String jsonParam(RequestBody User user){System.out.println(user);return "OK";} } postman 接口测试工具…...
RabbitMQ多线程配置和异常解决办法
(1)RabbitMQ多线程配置 RabbitMqConfig.java Bean("customContainerFactory") public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory conn…...
【原创】java+swing+mysql车辆维修管理系统设计与实现
摘要: 车辆维修管理系统是一个用于管理和追踪车辆维修过程的系统,它能够提高效率,减少错误,并提供详细的车辆历史记录,可以帮助车辆维修企业实现信息化管理,提高工作效率和客户满意度,降低运营…...
无法在 DLL“SQLite.Interop.dll”中找到名为”sIb4c632894b76cc1d“
做项目,碰到这个问题,网上的解决办法都是 更换sqlite版本去解决 在我这里不适用 我这里的项目是一个主项目 下面挂载了很多其子项目 解决办法是 把子项目 和 主项目 更换为统一的sqlite版本 , 如果统一更换后还不可以 就把主项目下生成的 (一定要确保主项目下的sqlite版本一定是…...
linux高级篇基础理论一(详细文档、Apache,网站,MySQL、MySQL备份工具)
♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…...
周赛370(模拟、树形DP(正难则反)、树状数组优化DP)
文章目录 周赛370[2923. 找到冠军 I](https://leetcode.cn/problems/find-champion-i/)模拟 [2924. 找到冠军 II](https://leetcode.cn/problems/find-champion-ii/)统计入度 [2925. 在树上执行操作以后得到的最大分数](https://leetcode.cn/problems/maximum-score-after-appl…...
python实现一个简单的桌面倒计时小程序
本章内容主要是利用python制作一个简单的桌面倒计时程序,包含开始、重置 、设置功能。 目录 一、效果演示 二、程序代码 一、效果演示 二、程序代码 #!/usr/bin/python # -*- coding: UTF-8 -*- """ author: Roc-xb """import tkin…...
解决STM32F429烧录程序后还需复位才能植入程序的bug
1.打开魔术棒,打开debug 2.打开setting 3.打开Flas Download 4.开启Reset and Run 5.点进去Pack选项页面,去掉enable...
使用Golang调用摄像头
近年来,摄像头成为了我们生活中不可或缺的设备之一。从智能手机到安全监控系统,无处不在的摄像头给我们带来了便利和安全。在开发摄像头相关的应用程序时,选择一种高效和易用的编程语言是非常重要的。本文将介绍如何使用Golang调用摄像头并进…...
【Linux网络】1分钟使用shell脚本完成DNS主从解析服务器部署(适用于centos主机)
DNS正向解析主从解析服务器脚本 1、脚本内容 主服务器脚本 #!/bin/bash ##先修改本地DNS缓存服务器 read -p "请输入主服务器ip地址:" masterIP sed -i /DNS/d /etc/sysconfig/network-scripts/ifcfg-ens33 echo "DNS$masterIP" >> /e…...
基于SSM的校园停车场管理系统设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...
块设备 I/O 请求送达到外部设备
对于 ext4 文件系统,最后调用的是 ext4_file_write_iter,它将 I/O 的调用分成两种情况: 第一是直接 I/O。最终我们调用的是 generic_file_direct_write,这里调用的是 mapping->a_ops->direct_IO,实际调用的是 e…...
【ArcGIS Pro二次开发】(76):面积平差工具
之前做过一个【三调土地利用现状分类面积汇总】的工具,在流程中使用了面积平差的方法。 考虑了在其它场合可能也需要进行面积平差,因此单独提取出来作为一个工具。 平差实现的方法如下图: 主要的计算过程如上图所示,算出总面积差…...
4、智能家居框架设计和代码文件工程建立
目录 一、智能家居项目框架 二、智能家居工厂模式示意 三、代码文件工程建立 SourceInsight创建新工程步骤 一、智能家居项目框架 二、智能家居工厂模式示意 三、代码文件工程建立 创建一个名为si的文件夹用于保存SourceInsight生成的文件信息,然后在SourceInsig…...
网络编程TCP/UDP
1 网络通信概述 1.1 IP 和端口 所有的数据传输,都有三个要素 :源、目的、长度。 怎么表示源或者目的呢?请看图 所以,在网络传输中需要使用“IP 和端口”来表示源或目的。 1.2 网络传输中的 2 个对象:server 和 clie…...
移远EC600U-CN开发板 11.15
制作一个简单UI: 1."端口设置"模块 *效果图 *代码 def backEvent(evt): #返回主界面code evt.get_code() if code lv.EVENT.CLICKED:lv.scr_load(mainInterface)def popUpEvent(evt): #弹窗提醒code evt.get_code()if code lv.EVENT.CL…...
Docker - MySQL Database is uninitialized and password option is not specified
问题描述 docker run --namemaster -p 3306:3306 -d mysql 2022-11-11 08:03:0500:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. 2022-11-11 08:03:0500:00 [Note] [Entrypoint]: Switching to dedicated user mysql 2022-11-11 08:03…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...
