从1到 n整数中1出现的次数
来源:互联网 发布:ug编程二次开粗绝招 编辑:程序博客网 时间:2024/04/30 10:40
输入一个整数n,求1到 n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。
解:
1.字符串
public int NumberOf1Between1AndN_Solution(int n) { int num = n; int count = 0;// 计算数字中含有1的数字个数。 int strLen = 0;//每个数字的长度 for (int i = 0; i <= num; i++) { String str = String.valueOf(i); strLen = str.length(); for (int j = 0; j < strLen; j++) { if (str.charAt(j) == '1') { count++; } } } return count;}2.
public class Solution { public int NumberOf1Between1AndN_Solution(int n) { int count = 0; for(int i=0;i<=n;i++) { count += NumberOf1(i); } return count; } int NumberOf1(int n) { int count = 0; while(n!=0) { if(n%10 == 1) count++; n /= 10; } return count; }}3.数学规律
public class Solution { public int NumberOf1Between1AndN_Solution(int n) { if (n < 1) return 0; int len = getLenOfNum(n); if (len == 1) return 1; int tmp = (int) Math.pow(10, len - 1); int first = n / tmp; int firstOneNum = first == 1 ? n % tmp + 1 : tmp; int otherOneNUm = first * (len - 1) * (tmp / 10); return firstOneNum + otherOneNUm + NumberOf1Between1AndN_Solution(n % tmp); } private int getLenOfNum(int n) { int len = 0; while (n != 0) { len++; n /= 10; } return len; }}
0 0
- 整数中1出现的次数(从1到n整数中1出现的次数)
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到 n整数中1出现的次数
- 从1到n整数中1出现的次数
- 数据结构学习笔记之树结构
- 数据结构实验之求二叉树后序遍历和层次遍历
- 几何画板构造三等分点的步骤有哪些
- jQuery.position()对不同浏览器的支持,并不可靠(一,问题描述)
- 单例
- 从1到 n整数中1出现的次数
- maven项目的Cannot change version of project facet Dynamic web module to 2.5
- android视频录制预览选择
- JTA 深度探险
- linux下 ping: unknown host www.baidu.com” 解决方法
- 编程之美 计算1的个数 1~n中1的个数 --- 二进制中1的个数 ---总结
- unity3d实现语言本地化
- 四种基本布局之一——LinearLayout
- TestBlog