如何看一个整数里有几个3(或其他数)?
来源:互联网 发布:赵丽颖为什么能红 知乎 编辑:程序博客网 时间:2024/06/02 02:31
输入两个正整数 m 和 k,其中1 < m < 100000,1 < k < 5 ,判断 m 能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。
例如,输入:
43833 3
满足条件,输出YES。
如果输入:
39331 3
尽管有3个3,但不能被19整除,也不满足条件,应输出NO。
输入
m 和 k 的值,中间用单个空格间隔。
输出
满足条件时输出 YES,不满足时输出 NO。
样例输入
43833 3
样例输出
例如,输入:
43833 3
满足条件,输出YES。
如果输入:
39331 3
尽管有3个3,但不能被19整除,也不满足条件,应输出NO。
输入
m 和 k 的值,中间用单个空格间隔。
输出
满足条件时输出 YES,不满足时输出 NO。
样例输入
43833 3
样例输出
YES
判断是否能被19整除,这一个是非常简单的了,直接用m mod 19(m%19),看结果是否为0即可。
对于判断一个整数里有几个3,有两种方法;
法一:转字符串判断;
对于Pascal,先用str(m,s)把整数m转换成字符串s(str(a,s)表示把整数a转换成字符串s);
然后枚举一遍1-length(s),找s[i]='3'的数目即可。
对于C++,转字符串会麻烦一些,建议用法二;
法二:直接利用整数逐位判断;
例如43833,容易发现对10进行整除可去末位,而对10取余可得末位。
43833-->4383*10+3; 所以43833%10==3,得末位为3,ans++,同时m=43833/10=4383去末位。
4383-->438*10+3; 所以4383%10==3,得末位为3,ans++,同时m=4383/10=438。
以此类推,可求3的个数。
此方法加以推广,可以将整数拆分,求出一个整数任意位的数。
阅读全文
0 0
- 如何看一个整数里有几个3(或其他数)?
- 162 有2个数组,里面有 N 个整数,看是否两个数组里存在一个同样的数
- 一组整数中,除了一个数,其他数都出现了3次或以上,找出这个数
- 看一个数有多少奇数因子
- 一个整数数组中只有一个数仅出现一次,其他整数均出现两次
- hamming distance二进制数异或有几个1
- 一个文件中有40亿个整数,求出这个文件里的整数里不包含的一个整数
- 查询数字串里有不规则的字符或符号
- 每天学习一算法系列(4) (输入一个整形数组,数组里有正数也有负数,数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和)
- 输入一个整形数组,数组里有正数也有负数,数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和
- 【C语言】输入一个整形数组,数组里有正数也有负数,数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
- 每天学习一算法系列(4) (输入一个整形数组,数组里有正数也有负数,数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和)
- JDK里其他几个工具
- JavaScript 判断一个字符串是不是数字(整数或浮点数)
- 有符号数中负数为什么比整数多一个
- 判断一个整数的二进制数有多少个1
- 有一个整数n,将n分解成若干个整数之和,问如何分解能使这些数的乘积最大,输出这个乘积m
- 两个小程序:atoi & 统计整数的二进制表示里有几个1
- CentOS 安装MongoDB
- 树莓派3B 安装系统(无需显示器,针对raspbian-stretch版,包含SSH连接以及远程桌面/无需VNC)
- 20171207Link
- 几行Python代码生成饭店营业额模拟数据并保存为CSV文件
- session、cookie、sessionStorage 、localStorage的概念
- 如何看一个整数里有几个3(或其他数)?
- 领域驱动设计-划分界限上下文
- 4.Median of Two Sorted Arrays
- 谈谈函数的调用
- input框在ios中的阴影问题
- LOJ6009「网络流 24 题
- iOS 复制一个UIView对象
- Lesson7 图形用户界面1
- 实现android屏幕共享到pc总结