`

java算法----求从1到N中,某数出现的个数

    博客分类:
  • java
 
阅读更多
package com.dazhongdianping.interview;

/**
 *  给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有"1"的个数。
 *  例如:
 *  N=2,写下1,2。这样只出现了1个"1"
 *  N=12,写下 1,2,3,4,5,6,7,8,9,10,11,12。这样"1"的个数是5
 * @author yangjianzhou
 *
 */
public class CountNumber {

	public static void main(String[] args) {
		CountNumber cn = new CountNumber();
		long l1 = System.currentTimeMillis();
		cn.method1(12, 1);
		long l2 = System.currentTimeMillis();
		cn.method2(12, 1);
		long l3 = System.currentTimeMillis();
		System.out.println("方法一运行所需时间为:"+(l2-l1));
		System.out.println("方法二运行所需时间为:"+(l3-l2));
	}

	public void method1(int n,int num){
		StringBuffer sb = new StringBuffer();

		for(int i=1;i<=n;i++){
			sb.append(i);
		}
		int len1 = sb.toString().length();
		int len2 = sb.toString().replaceAll(""+num, "").length();
		System.out.println("从1到"+n+"中有数字"+num+"的个数为:"+(len1-len2));
	}
	
	public void method2(int n,int num){
		int a ,count =0;
		for(int i=1;i<=n;i++){
			a=i;
			while(a!=0){
				if(a%10==1){
					count ++;
				}
					a = a/10;
			}
		}
		System.out.println("从1到"+n+"中有数字"+num+"的个数为:"+count);
	}
}



运行结果:

从1到12中有数字1的个数为:5
从1到12中有数字1的个数为:5
方法一运行所需时间为:2
方法二运行所需时间为:0
分享到:
评论

相关推荐

    Java常用算法手册

    深入浅出,描述java算法,从0到1。 1.大O表示法:粗略的量度方法即算法的速度是如何与数据项的个数相关的 算法 大O表示法表示的运行时间 线性查找 O(N) 二分查找 O(logN) 无序数组的插入 O(1) 有序数组的...

    0-1背包问题.java给定背包的容量c,物品数量n、物品重量的集合w[n]和物品价值的集合v[n]; 2... 设有n种物品,

    给定n种物品和一个背包。物品i的重量是wi,体积是bi,其价值为vi,背包的容量为c,容积为d。...容量c,背包的容积d,物品的个数n。接下来的n行表示n个物品的重量、 体积和价值。输出为最大的总价值。

    java大作业,课程设计

    现在我们需要你求出给定的m和n之间的幸运数的个数: 例如:给定1 20,那么个数为:5(5个幸运数分别是1,3,7,13,19) 现在要求用户输入两个数m和n(m&lt;n*1000),输出幸运数的个数。 例如: 用户输入: 1 20 程序输出: ...

    Java大作业

    现在我们需要你求出给定的m和n之间的幸运数的个数: 例如:给定1 20,那么个数为:5(5个幸运数分别是1,3,7,13,19) 现在要求用户输入两个数m和n(m&lt;n*1000),输出幸运数的个数。 例如: 用户输入: 1 20 程序输出: ...

    游艇租用问题 java 语言程序

    长江游艇俱乐部在长江上...试设计一个算法,计算从游艇出租站1到游艇出租站n所需的最少租金。 2、 输入 游艇出租站的个数n,以及游艇从任意两个站租和还的费用。 3、 输出 从游艇出租站1到游艇出租站n所需的最少租金。

    Java解决“野人传教士过河问题”算法源码

    假设有 N 个传教士和 N 个野人准备渡河,但只有一条能容纳 C 人的小船,1 &lt; C &lt; N,为了防止野人伤害传教士,要求无论在何处,传教士的个数不得少于野人的人数(除非传教士个数为 0)。如果两种人都会划船,试设计一...

    Java面试宝典-经典

    19、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 90 20.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序...

    Java实现 蓝桥杯 算法训练 相邻数对(暴力)

     给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。 输入格式  输入的第一行包含一个整数n,表示给定整数的个数。  第二行包含所给定的n个整数。 输出格式  输出一个整数,表示值正好相差1的数对...

    Integer Factorization 对于给定的正整数n,编程计算n共有多少种不同的分解式。

    大于1 的正整数n可以分解为:n=X1*X2*…*Xm。 例如,当n=12 时,共有8 种不同的分解式: 12=12; 12=6*2; 12=4*3; 12=3*4; 12=3*2*2; 12=2*6; 12=2*3*2; 12=2*2*3。 编程任务: 对于给定的正整数n...

    达内 coreJava 习题答案

    其中a为1至9之中的一个数,项数也要可以指定。 import java.util.Scanner; class Multinomial{ public static void main(String[] args){ int a; //定义输入的 a int howMany; //定义最后的一项有多少个数字 ...

    爬楼梯 java版程序源码

    //如果n的取值从32~36,m的取值从2~3,请写程序输出每种情况下小明有多少种爬楼梯的方法。 //输入格式:共2行数据,内容如下: //10 32 32 33 33 34 34 35 35 36 36 //10 2 3 2 3 2 3 2 3 2 3 //每行第一个元素...

    A11Might#easyalgorithm#AcWing 801. 二进制中1的个数1

    801. 二进制中1的个数算法:#位运算每次减去给定整数 x 二进制中的最后一位 1(lowbit(n) = n & -n),一共能减几次 x 二进制中就有几个

    RSA加密算法

    RSA加密算法 对文档进行加密 public void inputPQ() throws Exception { do { System.out.println("请输入素数p:... System.out.println("所得的小于N并且与N互素的整数的个数为m=(p-1)(q-1) :" + this.m); }

    给定一个数列,用归并排序算法把它排成升序。

    第一行是一个整数n(n不大于10000),表示要排序的数的个数; 下面一行是用空格隔开的n个整数。

    跟我学Java面向对象程序设计技术及应用——识别某个自然数是否为质数(素数)的Java程序实现示例.doc

    地包含有main()方法 4、编程示例中的功能实现的程序代码 在该Java程序中,获得用户从键盘中输入的一个数字变量,然后判断所输入的这个数 字是否为素数,并打印出判断的结果。 (1)程序代码示例 package ...

    Java面试宝典2010版

    19、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 20.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,...

    Java 八大排序

    设待排序元素的个数为n. 1)当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速...

    Java实现蓝桥杯VIP 算法训练 P0502

     编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值...

    运用动态规划的石子规划问题

    算法实现题3-6 石子合并问题 ...第二行有n个数,分别表示每堆石子的个数。 «结果输出: 程序运行结束时,将计算结果输出到文件output.txt 中。文件的第1 行中的数是最小得 分;第2 行中的数是最大得分

Global site tag (gtag.js) - Google Analytics