当前位置: 首页 > news >正文

CSDN每日一题学习训练——Python版(输入起始和结束的正整数,求其两个正整数之间的偶数和、两数相加)

版本说明

当前版本号[20231115]。

版本修改说明
20231115初版

目录

文章目录

  • 版本说明
  • 目录
  • 输入起始和结束的正整数,求其两个正整数之间的偶数和。
    • 题目
    • 解题思路
    • 代码思路
    • 参考代码
  • 两数相加
    • 题目
    • 解题思路
    • 代码思路
    • 参考代码

输入起始和结束的正整数,求其两个正整数之间的偶数和。

题目

输入起始和结束的正整数,求其两个正整数之间的偶数和。

解题思路

  1. 首先,通过input()函数获取用户输入的起始数和结束数。
  2. 然后,将这两个输入的字符串转换为整数类型,分别赋值给变量ab
  3. 初始化两个变量sum1sum2,用于存储两种不同计算方式下的偶数和。
  4. 使用第一个for循环遍历从ab+1的所有整数(包括b),判断每个整数是否为偶数。如果是偶数,则将其加到sum1中,并将当前整数加2;如果不是偶数,则将当前整数加1。这样可以确保在计算偶数和时,只考虑偶数。
  5. 使用第二个for循环遍历从a+1b的所有整数(不包括b),同样判断每个整数是否为偶数。如果是偶数,则将其加到sum2中,并将当前整数加2;如果不是偶数,则将当前整数加1。这样可以确保在计算偶数和时,不考虑边界上的奇数。
  6. 最后,输出两种计算方式下的偶数和。

代码思路

  1. 首先,通过input函数获取用户输入的起始数和结束数,并将它们转换为整数类型。然后,初始化两个变量sum1和sum2,分别用于存储两种不同计算方式下的偶数和。

    # 获取用户输入的起始数和结束数
    x1 = input("请输入起始数:")
    x2 = input("请输入结束数:")# 将输入的字符串转换为整数
    a = int(x1)
    b = int(x2)# 初始化偶数和为0
    sum1 = 0# 初始化偶数和为0
    sum2 = 0
    
  2. 接下来,使用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
    
  3. 同样地,使用另一个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
    
  4. 最后,输出两种计算方式下的偶数和。

# 输出结果
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.

image-20231115233116887

示例 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
题目数据保证列表表示的数字不含前导零

解题思路

  1. 初始化一个空链表,用于存储相加后的结果。
  2. 初始化两个指针,分别指向两个链表的头节点。
  3. 初始化一个变量 carry,用于记录进位值。
  4. 当两个链表都不为空时,执行以下操作: a. 计算当前位置的两个节点的值之和,加上进位值。 b. 如果和大于等于10,更新进位值为1,否则进位值为0。 c. 将和对10取余,作为新节点的值。 d. 将新节点添加到结果链表的末尾。 e. 移动两个指针到下一个节点。
  5. 如果其中一个链表已经遍历完,但另一个链表还有剩余节点,那么将剩余节点的值依次加到结果链表的末尾,并考虑进位值。
  6. 如果最后还有进位值,那么在结果链表的末尾添加一个新节点,值为进位值。
  7. 返回结果链表的头节点。

代码思路

  1. 首先定义了一个链表节点类ListNode,包含节点值val和指向下一个节点的指针next。

    # 定义链表节点类
    class ListNode:def __init__(self, val=0, next=None):self.val = val  # 节点值self.next = next  # 下一个节点
    
  2. 然后定义了一个链表类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  # 返回结果列表
    
  3. 接着定义了一个解决方案类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初版 目录 文章目录 版本说明目录输入起始和结束的正整数&#xff0c;求其两个正整数之间的偶数和。题目解题思路代码思路参考代码 两数相加题目解题思路代码思路参考代码 输入起始和结束的正整数&#xff0c;求其两个…...

【论文】基于Hadoop的铁路货运大数据平台设计与应用

点我完整下载&#xff1a;基于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种设计模式之一&#xff0c;其作用是&#xff1a;为其他对象提供一种代理以控制对这个对象的访问。在某些情况下&#xff0c;一个客户不想或者不能直接引用一个对象&#xff0c;此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以…...

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多线程配置和异常解决办法

&#xff08;1&#xff09;RabbitMQ多线程配置 RabbitMqConfig.java Bean("customContainerFactory") public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory conn…...

【原创】java+swing+mysql车辆维修管理系统设计与实现

摘要&#xff1a; 车辆维修管理系统是一个用于管理和追踪车辆维修过程的系统&#xff0c;它能够提高效率&#xff0c;减少错误&#xff0c;并提供详细的车辆历史记录&#xff0c;可以帮助车辆维修企业实现信息化管理&#xff0c;提高工作效率和客户满意度&#xff0c;降低运营…...

无法在 DLL“SQLite.Interop.dll”中找到名为”sIb4c632894b76cc1d“

做项目,碰到这个问题,网上的解决办法都是 更换sqlite版本去解决 在我这里不适用 我这里的项目是一个主项目 下面挂载了很多其子项目 解决办法是 把子项目 和 主项目 更换为统一的sqlite版本 , 如果统一更换后还不可以 就把主项目下生成的 (一定要确保主项目下的sqlite版本一定是…...

linux高级篇基础理论一(详细文档、Apache,网站,MySQL、MySQL备份工具)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xff1a;云计算技…...

周赛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制作一个简单的桌面倒计时程序&#xff0c;包含开始、重置 、设置功能。 目录 一、效果演示 二、程序代码 一、效果演示 二、程序代码 #!/usr/bin/python # -*- coding: UTF-8 -*- """ author: Roc-xb """import tkin…...

解决STM32F429烧录程序后还需复位才能植入程序的bug

1.打开魔术棒&#xff0c;打开debug 2.打开setting 3.打开Flas Download 4.开启Reset and Run 5.点进去Pack选项页面&#xff0c;去掉enable...

使用Golang调用摄像头

近年来&#xff0c;摄像头成为了我们生活中不可或缺的设备之一。从智能手机到安全监控系统&#xff0c;无处不在的摄像头给我们带来了便利和安全。在开发摄像头相关的应用程序时&#xff0c;选择一种高效和易用的编程语言是非常重要的。本文将介绍如何使用Golang调用摄像头并进…...

【Linux网络】1分钟使用shell脚本完成DNS主从解析服务器部署(适用于centos主机)

DNS正向解析主从解析服务器脚本 1、脚本内容 主服务器脚本 #!/bin/bash ##先修改本地DNS缓存服务器 read -p "请输入主服务器ip地址&#xff1a;" masterIP sed -i /DNS/d /etc/sysconfig/network-scripts/ifcfg-ens33 echo "DNS$masterIP" >> /e…...

基于SSM的校园停车场管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

块设备 I/O 请求送达到外部设备

对于 ext4 文件系统&#xff0c;最后调用的是 ext4_file_write_iter&#xff0c;它将 I/O 的调用分成两种情况&#xff1a; 第一是直接 I/O。最终我们调用的是 generic_file_direct_write&#xff0c;这里调用的是 mapping->a_ops->direct_IO&#xff0c;实际调用的是 e…...

【ArcGIS Pro二次开发】(76):面积平差工具

之前做过一个【三调土地利用现状分类面积汇总】的工具&#xff0c;在流程中使用了面积平差的方法。 考虑了在其它场合可能也需要进行面积平差&#xff0c;因此单独提取出来作为一个工具。 平差实现的方法如下图&#xff1a; 主要的计算过程如上图所示&#xff0c;算出总面积差…...

4、智能家居框架设计和代码文件工程建立

目录 一、智能家居项目框架 二、智能家居工厂模式示意 三、代码文件工程建立 SourceInsight创建新工程步骤 一、智能家居项目框架 二、智能家居工厂模式示意 三、代码文件工程建立 创建一个名为si的文件夹用于保存SourceInsight生成的文件信息&#xff0c;然后在SourceInsig…...

网络编程TCP/UDP

1 网络通信概述 1.1 IP 和端口 所有的数据传输&#xff0c;都有三个要素 &#xff1a;源、目的、长度。 怎么表示源或者目的呢&#xff1f;请看图 所以&#xff0c;在网络传输中需要使用“IP 和端口”来表示源或目的。 1.2 网络传输中的 2 个对象&#xff1a;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…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...

更新 Docker 容器中的某一个文件

&#x1f504; 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法&#xff0c;适用于不同场景。 ✅ 方法一&#xff1a;使用 docker cp 拷贝文件到容器中&#xff08;最简单&#xff09; &#x1f9f0; 命令格式&#xff1a; docker cp <…...

解决MybatisPlus使用Druid1.2.11连接池查询PG数据库报Merge sql error的一种办法

目录 前言 一、问题重现 1、环境说明 2、重现步骤 3、错误信息 二、关于LATERAL 1、Lateral作用场景 2、在四至场景中使用 三、问题解决之道 1、源码追踪 2、关闭sql合并 3、改写处理SQL 四、总结 前言 在博客&#xff1a;【写在创作纪念日】基于SpringBoot和PostG…...

在MobaXterm 打开图形工具firefox

目录 1.安装 X 服务器软件 2.服务器端配置 3.客户端配置 4.安装并打开 Firefox 1.安装 X 服务器软件 Centos系统 # CentOS/RHEL 7 及之前&#xff08;YUM&#xff09; sudo yum install xorg-x11-server-Xorg xorg-x11-xinit xorg-x11-utils mesa-libEGL mesa-libGL mesa-…...