消失的9

前段时间和几个小伙伴讨论过一个问题
   1-100中到底有多少个9?
得到了两个答案
19     和       20
那到底该是哪个呢?
先来分析问题,想要找9 无非就是在个位上和十位上找嘛
想找到个位数上的9就模10取余数看等不等于9
找十位数上就除上10看等不等于9
ok,啪!很快啊,代码出来了,我们给出了两种代码
第一个




第二个





一观察就发现这两个代码的区别就在于
else
有else的运行结果为19,没有else的为20
为什么呢?很简单稍加分析,在数1-98时,两个代码都能很好的数出18个9。区别就在99,对第一个代码来说,运行了    if(99%9==0)    之后就退出去了(没有去数十位上的9),此时count =19

而第二个运行了   if(99%9==0)   之后还运行了 if(99/10==9)(数了是为数上的9) 此时count=20
总结
这样一来,20才是正确答案
那19就错了嘛,也不好说
如果题目是数出1-100中含有9的数字的个数的话
答案就是19了
这反应了什么问题呢?我觉得我们应该时刻警惕先入为主的思想
当看到一个题目我们很容易就按照着自己的思路就走了,这可是学习大忌啊。

 🆗 文章到这就结束啦,如果有错误的地方希望各位指正,欢迎评论区留言

 

 

  • 12
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
练习1: 1. 使用 root 账号登录服务器 2. 创建 dev test 两个小组 ``` groupadd dev groupadd test ``` 3. 创建 zhangsan 进入 dev 小组 ``` useradd zhangsan -g dev ``` 4. 创建 lisi wangwu 两个账号进入 test 小组 ``` useradd lisi -g test useradd wangwu -g test ``` 5. 尝试直接删除 dev 小组,能否删除(看返回信息) ``` groupdel dev ``` 返回信息为: ``` groupdel: cannot remove the primary group of user 'zhangsan' ``` 无法删除 dev 小组,因为 zhangsan 是该小组的主用户。 6. test 小组的小组编号,指定为 800,`cat /etc/group` 文件,(如果 800 被别的组占用 test 无法改过去) ``` groupmod -g 800 test ``` 7. 把 zhangsan 放入 test 小组 ``` usermod -g test zhangsan ``` 8. 此时再次尝试删除 dev 小组,删除成功后,`cat /etc/group` 文件,最后是否 dev 消失 ``` groupdel dev cat /etc/group ``` 返回信息为: ``` cat: /etc/group: No such file or directory ``` dev 已被删除,`/etc/group` 文件中不存在 dev。 9. 删除 lisi wangwu 两个账号后 `cat /etc/passwd` 文件,查看是否只有 zhangsan 一个账号,且 zhangsan 的小组号显示为 800 ``` userdel -r lisi userdel -r wangwu cat /etc/passwd ``` 返回信息为: ``` zhangsan:x:1001:800::/home/zhangsan:/bin/bash ``` 只有 zhangsan 一个账号,且小组号为 800。 10. 给张三设置密码,可以为 123456 ``` passwd zhangsan ``` 输入新密码为 123456。 11. 在 xshell 新建一个选项卡,使用 ssh 登录账号 zhangsan ``` ssh zhangsan@服务器IP ``` 12. 查看张三用户所在目录 `pwd` 显示什么、`whoami` 命令查看账号名称 `ls` 查询当前目录是不是什么都没有,用 `ls -a`(`-a` 可以查询隐藏文件)查询是否能查到别的东西 ``` pwd whoami ls ls -a ``` 返回信息为: ``` /home/zhangsan zhangsan (empty) . .. .bashrc ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值