鱼C论坛

 找回密码
 立即注册
查看: 3238|回复: 3

[已解决]作业求助

[复制链接]
发表于 2023-4-19 20:44:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
v1 = input("请输入第一个版本号,v1 = ")
v2 = input("请输入第二个版本号,v2 = ")
   
n, m = len(v1), len(v2)
i, j = 0, 0
   
while i < n or j < m:
    x = 0
    while i < n and v1[i] != '.':
        x = x * 10 + int(v1[i])
        i += 1
    i += 1
    y = 0
    while j < m and v2[j] != '.':
        y = y * 10 + int(v2[j])
        j += 1
    j += 1
    if x > y:
        print("v1")
        break
    elif x < y:
        print("v2")
        break
   
if x == y:
    print("v1 = v2")

看不懂啦
最佳答案
2023-4-19 20:47:21
本帖最后由 sfqxx 于 2023-4-19 20:49 编辑

这段代码是一个比较版本号的小程序。用户需要输入两个版本号 v1 和 v2,然后程序会比较它们的大小。

比较的规则是:

版本号从左到右依次进行比较;
每一级的版本号按照“.”进行分割;
如果某一级的版本号大于另一级,则前者版本号大;
版本号完全相同时,则两个版本号相等。
下面是代码实现的基本思路:

首先获取输入的两个版本号 v1 和 v2,并计算其长度 n 和 m;
定义两个指针 i 和 j 分别指向 v1 和 v2 中的版本号;
进行循环比较:只要 i 或 j 有一个没到字符串末尾,就继续比较;
针对每个版本号,分别按照“.”进行分割,并转化为整数 x 和 y 进行比较,如果 x > y,则 v1 大;如果 x < y,则 v2 大;
循环结束后,如果 x == y,则说明两个版本号相等。
希望这样能够帮助你理解这段代码。
有用请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-19 20:45:38 | 显示全部楼层
本帖最后由 歌者文明清理员 于 2023-4-19 20:53 编辑
  1. v1 = input("请输入第一个版本号,v1 = ")
  2. v2 = input("请输入第二个版本号,v2 = ")
  3.    
  4. n, m = len(v1), len(v2)
  5. i, j = 0, 0
  6.    
  7. while i < n or j < m:
  8.     x = 0
  9.     while i < n and v1[i] != '.':
  10.         x = x * 10 + int(v1[i])
  11.         i += 1
  12.     i += 1
  13.     y = 0
  14.     while j < m and v2[j] != '.':
  15.         y = y * 10 + int(v2[j])
  16.         j += 1
  17.     j += 1
  18.     if x > y:
  19.         print("v1")
  20.         break
  21.     elif x < y:
  22.         print("v2")
  23.         break
  24.    
  25. if x == y:
  26.     print("v1 = v2")
复制代码



代码是比较版本号,用户输入两个版本号,程序按小数点“.”区分。
while 循环内,使用 n、m 保存某部分(两个点之间)的版本号。

代码的具体实现是将版本号按照点号拆分成多个部分,比较每个部分的大小。如果在比较过程中已经可以确定哪个版本号更大,则直接输出该版本号并结束循环,否则继续比较下一个部分。

最后输出v1/v2/相等。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-19 20:47:21 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sfqxx 于 2023-4-19 20:49 编辑

这段代码是一个比较版本号的小程序。用户需要输入两个版本号 v1 和 v2,然后程序会比较它们的大小。

比较的规则是:

版本号从左到右依次进行比较;
每一级的版本号按照“.”进行分割;
如果某一级的版本号大于另一级,则前者版本号大;
版本号完全相同时,则两个版本号相等。
下面是代码实现的基本思路:

首先获取输入的两个版本号 v1 和 v2,并计算其长度 n 和 m;
定义两个指针 i 和 j 分别指向 v1 和 v2 中的版本号;
进行循环比较:只要 i 或 j 有一个没到字符串末尾,就继续比较;
针对每个版本号,分别按照“.”进行分割,并转化为整数 x 和 y 进行比较,如果 x > y,则 v1 大;如果 x < y,则 v2 大;
循环结束后,如果 x == y,则说明两个版本号相等。
希望这样能够帮助你理解这段代码。
有用请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-19 20:48:01 | 显示全部楼层
这个代码是用来比较两个版本号大小的。用户输入两个版本号,然后程序会逐个比较版本号的每一部分(用点号'.'分隔),最后输出较大的版本号。

代码的主要步骤如下:

  • 获取用户输入的两个版本号,并将其分别存储在变量v1和v2中。
  • 获取v1和v2的长度,分别存储在变量n和m中。
  • 初始化两个指针i和j,分别用于遍历v1和v2。
  • 使用while循环,在i和j分别小于n和m的情况下,进入循环体。
  • 对于v1和v2中的每个部分(以点号'.'分隔),计算它们的整数值(x和y)。
  • 如果x大于y,说明v1的当前部分大于v2的当前部分,输出"v1"并跳出循环。反之,如果x小于y,说明v1的当前部分小于v2的当前部分,输出"v2"并跳出循环。
  • 如果循环结束后,x和y相等,说明v1和v2相等,输出"v1 = v2"。


这个程序的输入示例如下:
v1 = "1.2.3"
v2 = "1.2.4"
输出结果为:"v2",因为1.2.4的版本号大于1.2.3。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-28 22:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表