• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[神梦] 【每日一题】9的时代 - 2022.6.29 [复制链接]

1#
题目描述

今天的主角是数字9。给定一个正整数n,请编写一个函数,统计从数字1到n(包含)中出现了多少个9。例如99,919都算有2个9。

【示例】
输入:10
输出:1
解释:数字1到10中,只有数字9满足条件,所以算作1个。

题目难度:中等
题目来源:codewars - count '9’s from 1 to n
题目交流: 584781753
  1. Import "SmAssert.dll"

  2. Function 九的时代(数字)
  3.     // 您的代码写在这里
  4. End Function


  5. SmAssert 九的时代(8) = 0
  6. SmAssert 九的时代(10) = 1
  7. SmAssert 九的时代(100) = 20
  8. SmAssert 九的时代(279) = 48
  9. ' 进阶
  10. SmAssert 九的时代(99999) = 50000
  11. SmAssert 九的时代(565754) = 275645
复制代码

参考题解

  1. /*
  2.     总结规律,可以推断出:
  3.     
  4.     个位:当为9时1个,其他0个
  5.     十位(10): 1个
  6.     百位(100): 20个
  7.     千位(1000): 300个
  8.     万位(10000): 4000个
  9. */
  10. Import "SmAssert.dll"

  11. Function 九的时代(数字)
  12.     
  13.     '【作者】:神梦无痕
  14.     '【QQ】:1042207232
  15.     '【Q群】:584781753
  16.     
  17.     Dim length, value
  18.     Dim b, k, d, m
  19.     
  20.     ' 目标数字长度
  21.     length = Len(数字)
  22.     
  23.     ' 递归结束
  24.     If length = 1 Then
  25.         If 数字 = 9 Then
  26.             九的时代 = 1
  27.         Else
  28.             九的时代 = 0
  29.         End If
  30.         Exit Function
  31.     End If
  32.     
  33.     ' 辅助数字
  34.     b = 10 ^ (length - 1)
  35.     k = (length - 1) * 10 ^ (length - 2)
  36.     
  37.     ' 商和余数
  38.     d = 数字 \ b
  39.     m = 数字 Mod b
  40.     
  41.     ' 递归计算对应数量
  42.     value = d * k + 九的时代(m)
  43.     
  44. If d = 9 Then
  45.         ' 单独处理9开头的
  46. value = value + m + 1
  47. End If

  48. 九的时代 = value
  49. End Function


  50. SmAssert 九的时代(8) = 0
  51. SmAssert 九的时代(10) = 1
  52. SmAssert 九的时代(100) = 20
  53. SmAssert 九的时代(279) = 48
  54. ' 进阶
  55. SmAssert 九的时代(99999) = 50000
  56. SmAssert 九的时代(565754) = 275645
复制代码










插件下载

 
【插件】神梦断言插件 SmAssert.dll,帮助开发者发现业务逻辑错误

发新话题 回复该主题