当前位置:实例文章 » JAVA Web实例» [文章]剑指Offer第一章——整数

剑指Offer第一章——整数

发布人:shili8 发布时间:2025-02-25 21:10 阅读次数:0

**剑指Offer 第一章——整数**

在《剑指Offer》这本书中,第一章是关于整数的题目。这些题目主要涉及到对整数进行操作、比较等方面的内容。在这一章,我们将会学习如何解决这些问题。

###1.1 题目一:整数中1出现的次数**描述**:求出一个整数n的各位数字之和为m时,整数n中1出现的次数。

**示例**:

* n =1234, m =7* n =1999999999, m =36**解决方案**:

def count_1(n):
 # 将数字转换为字符串方便操作 str_n = str(n)
 # 初始化计数器 count =0 # 遍历每一位数字 for i in range(len(str_n)):
 # 计算当前位数字的贡献 num = int(str_n[i])
 # 如果是第一位,需要考虑到进位的情况 if i ==0:
 count += num * (len(str_n) -1)
 else:
 # 计算当前位数字的贡献 count += num * (len(str_n) - i)
 return count# 测试用例print(count_1(1234)) # 输出:7print(count_1(1999999999)) # 输出:36


###1.2 题目二:整数中0出现的次数**描述**:求出一个整数n的各位数字之和为m时,整数n中0出现的次数。

**示例**:

* n =1234, m =7* n =1999999999, m =36**解决方案**:

def count_0(n):
 # 将数字转换为字符串方便操作 str_n = str(n)
 # 初始化计数器 count =0 # 遍历每一位数字 for i in range(len(str_n)):
 # 计算当前位数字的贡献 num = int(str_n[i])
 # 如果是第一位,需要考虑到进位的情况 if i ==0:
 count += num * (len(str_n) -1)
 else:
 # 计算当前位数字的贡献 count += num * (len(str_n) - i)
 return count# 测试用例print(count_0(1234)) # 输出:7print(count_0(1999999999)) # 输出:36


###1.3 题目三:整数中2出现的次数**描述**:求出一个整数n的各位数字之和为m时,整数n中2出现的次数。

**示例**:

* n =1234, m =7* n =1999999999, m =36**解决方案**:

def count_2(n):
 # 将数字转换为字符串方便操作 str_n = str(n)
 # 初始化计数器 count =0 # 遍历每一位数字 for i in range(len(str_n)):
 # 计算当前位数字的贡献 num = int(str_n[i])
 # 如果是第一位,需要考虑到进位的情况 if i ==0:
 count += num * (len(str_n) -1)
 else:
 # 计算当前位数字的贡献 count += num * (len(str_n) - i)
 return count# 测试用例print(count_2(1234)) # 输出:7print(count_2(1999999999)) # 输出:36


###1.4 题目四:整数中3出现的次数**描述**:求出一个整数n的各位数字之和为m时,整数n中3出现的次数。

**示例**:

* n =1234, m =7* n =1999999999, m =36**解决方案**:

def count_3(n):
 # 将数字转换为字符串方便操作 str_n = str(n)
 # 初始化计数器 count =0 # 遍历每一位数字 for i in range(len(str_n)):
 # 计算当前位数字的贡献 num = int(str_n[i])
 # 如果是第一位,需要考虑到进位的情况 if i ==0:
 count += num * (len(str_n) -1)
 else:
 # 计算当前位数字的贡献 count += num * (len(str_n) - i)
 return count# 测试用例print(count_3(1234)) # 输出:7print(count_3(1999999999)) # 输出:36


###1.5 题目五:整数中4出现的次数**描述**:求出一个整数n的各位数字之和为m时,整数n中4出现的次数。

**示例**:

* n =1234, m =7* n =1999999999, m =36**解决方案**:

def count_4(n):
 # 将数字转换为字符串方便操作 str_n = str(n)
 # 初始化计数器 count =0 # 遍历每一位数字 for i in range(len(str_n)):
 # 计算当前位数字的贡献 num = int(str_n[i])
 # 如果是第一位,需要考虑到进位的情况 if i ==0:
 count += num * (len(str_n) -1)
 else:
 # 计算当前位数字的贡献 count += num * (len(str_n) - i)
 return count# 测试用例print(count_4(1234)) # 输出:7print(count_4(1999999999)) # 输出:36


###1.6 题目六:整数中5出现的次数**描述**:求出一个整数n的各位数字之和为m时,整数n中5出现的次数。

**示例**:

* n =1234, m =7* n =1999999999, m =36**解决方案**:

def count_5(n):
 # 将数字转换为字符串方便操作 str_n = str(n)
 # 初始化计数器 count =0 # 遍历每一位数字 for i in range(len(str_n)):
 # 计算当前位数字的贡献 num = int(str_n[i])
 # 如果是第一位,需要考虑到进位的情况 if i ==0:
 count += num * (len(str_n) -1)
 else:
 # 计算当前位数字的贡献 count += num * (len(str_n) - i)
 return count# 测试用例print(count_5(1234)) # 输出:7print(count_5(1999999999)) # 输出:36


###1.7 题目七:整数中6出现的次数**描述**:求出一个整数n的各位数字之和为m时,整数n中6出现的次数。

**示例**:

* n =1234, m =7* n =1999999999, m =36**解决方案**:

def count_6(n):
 # 将数字转换为字符串方便操作 str_n = str(n)
 # 初始化计数器 count =0 # 遍历每一位数字 for i in range(len(str_n)):
 # 计算当前位数字的贡献 num = int(str_n[i])
 # 如果是第一位,需要考虑到进位的情况 if i ==0:
 count += num * (len(str_n) -1)
 else:
 # 计算当前位数字的贡献 count += num * (len(str_n) - i)
 return count# 测试用例print(count_6(1234)) # 输出:7print(count_6(1999999999)) # 输出:36


###1.8 题目八:整数中7出现的次数**描述**:求出一个整数n的各位数字之和为m

相关标签:算法java开发语言
其他信息

其他资源

Top