我的漫漫程序之旅

专注于JavaWeb开发
随笔 - 39, 文章 - 310, 评论 - 411, 引用 - 0
数据加载中……

给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有"1"的个数。

原题目:
给定一个十进制数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
请写出一个函数,返回1到N之间出现"1"的个数,比如 f(12)=5

package com;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/*******************************************************************************
 * 原题目: 给定一个十进制数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 请写出一个函数,返回1到N之间出现"1"的个数,比如
 * f(12)=5
 * 
 * 
@author zdw
 * 
 
*/

public class MainTest
{
    
public static void main(String[] args) throws Exception
    
{
        System.out.println(
"please input a number:");
        BufferedReader br 
= new BufferedReader(new InputStreamReader(System.in));
        Integer num 
= Integer.parseInt(br.readLine());
        
int count = 0;
        
for (int i = 1; i <= num; i++)
        
{
            String tNum 
= i + "";
            
if (tNum.indexOf("1"!= -1)
            
{
                count
++;
            }

        }

        System.out.println(
"1 appear times of count:" + count);
    }


}



大家一起来分享你的算法吧。

posted on 2008-11-04 09:26 々上善若水々 阅读(3249) 评论(6)  编辑  收藏 所属分类: Java笔试与面试

评论

# re: 给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有"1"的个数。   回复  更多评论   

貌似有点问题
这个判断条件欠妥
if (tNum.indexOf("1") != -1)
{
count++;
}
数字包含多个“1”的情况,比如“11”貌似只能记录1个
2008-11-17 23:00 | crsky fan

# re: 给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有"1"的个数。   回复  更多评论   

@crsky fan
不会的.
注意
String tNum = i + "";
只会得到一个字符(也就是一个数字)
2008-11-18 15:03 | 々上善若水々

# re: 给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有"1"的个数。   回复  更多评论   

你很自信你的程序正确很好,但是太盲目了!
一楼数的很对!
2008-12-08 10:35 | 123456

# re: 给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有"1"的个数。 [未登录]  回复  更多评论   

public static int countNum(int number) {

int count = 0;

StringBuffer buffer = new StringBuffer("");

for (int i = 1; i <= number; i++) {
buffer.append(i);
}

char[] chars = buffer.toString().toCharArray();

for (char c : chars) {

if (c == '1') {
count++;
}
}

return count;
}
2009-03-19 17:53 | zeyuphoenix

# louis vuitton handbags  回复  更多评论   


amazing
2011-06-10 16:38 | louis vuitton handbags

# re: 给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有"1"的个数。 [未登录]  回复  更多评论   

用JAVA写太简单了
2012-02-07 09:57 | xx

只有注册用户登录后才能发表评论。


网站导航: