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算法,从0到1。 1.大O表示法:粗略的量度方法即算法的速度是如何与数据项的个数相关的 算法 大O表示法表示的运行时间 线性查找 O(N) 二分查找 O(logN) 无序数组的插入 O(1) 有序数组的...
给定n种物品和一个背包。物品i的重量是wi,体积是bi,其价值为vi,背包的容量为c,容积为d。...容量c,背包的容积d,物品的个数n。接下来的n行表示n个物品的重量、 体积和价值。输出为最大的总价值。
现在我们需要你求出给定的m和n之间的幸运数的个数: 例如:给定1 20,那么个数为:5(5个幸运数分别是1,3,7,13,19) 现在要求用户输入两个数m和n(m<n*1000),输出幸运数的个数。 例如: 用户输入: 1 20 程序输出: ...
现在我们需要你求出给定的m和n之间的幸运数的个数: 例如:给定1 20,那么个数为:5(5个幸运数分别是1,3,7,13,19) 现在要求用户输入两个数m和n(m<n*1000),输出幸运数的个数。 例如: 用户输入: 1 20 程序输出: ...
长江游艇俱乐部在长江上...试设计一个算法,计算从游艇出租站1到游艇出租站n所需的最少租金。 2、 输入 游艇出租站的个数n,以及游艇从任意两个站租和还的费用。 3、 输出 从游艇出租站1到游艇出租站n所需的最少租金。
假设有 N 个传教士和 N 个野人准备渡河,但只有一条能容纳 C 人的小船,1 < C < N,为了防止野人伤害传教士,要求无论在何处,传教士的个数不得少于野人的人数(除非传教士个数为 0)。如果两种人都会划船,试设计一...
19、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 90 20.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序...
给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。 输入格式 输入的第一行包含一个整数n,表示给定整数的个数。 第二行包含所给定的n个整数。 输出格式 输出一个整数,表示值正好相差1的数对...
大于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...
对于带锁的门问题,学生计算了从1到n每个数的因子个数,并根据因子个数的奇偶性来判断门的状态,最终得出了开着的门和关着的门的编号以及打开的门的个数。 最后,学生对实验结果进行了总结,并对问题解决方法和心得...
其中a为1至9之中的一个数,项数也要可以指定。 import java.util.Scanner; class Multinomial{ public static void main(String[] args){ int a; //定义输入的 a int howMany; //定义最后的一项有多少个数字 ...
//如果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 //每行第一个元素...
801. 二进制中1的个数算法:#位运算每次减去给定整数 x 二进制中的最后一位 1(lowbit(n) = n & -n),一共能减几次 x 二进制中就有几个
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个整数。
地包含有main()方法 4、编程示例中的功能实现的程序代码 在该Java程序中,获得用户从键盘中输入的一个数字变量,然后判断所输入的这个数 字是否为素数,并打印出判断的结果。 (1)程序代码示例 package ...
19、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 20.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,...
设待排序元素的个数为n. 1)当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速...
编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值...