java 给出一个整数N,输出10个数字:(1--N之间含有多少0,1,2,3,4,5,6,7,8,9)

RT,想了挺久不知道怎么弄,感觉要靠数字长度来算,但是又不知道怎么做... RT,想了挺久不知道怎么弄,感觉要靠数字长度来算,但是又不知道怎么做 展开
 我来答
yugi111
2014-03-09 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部

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

/**
 * @author yugi111 <br>
 *  compute how many 0-9
 */
public class ComputeHowManyNums
{
public static void main( String[] args )
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputTip = "please input N numbers:";
System.out.println(inputTip);
String N = "0";
try
{
while(!( N = (br.readLine()).trim() ).matches("^[1-9]\\d+|\\d$"))
{
System.out.println(inputTip);
}
}
catch(IOException e)
{
e.printStackTrace();
}

// from 1 to N
String result = " ";
for( int i = 1; i <= Integer.parseInt(N); i++ )
{
result += i;
}
result += " ";

System.out.println("result is :" + result);

// compute 0-9
for( int i = 0; i < 10; i++ )
{
System.out.println(i + " : " + (result.split(String.valueOf(i)).length - 1));
}
}
}
巨人战舰
2014-03-09 · TA获得超过186个赞
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:153万
展开全部
循环1到N,使用Map来存储(或者直接用数组)次数啊。
要想提高效率的话,首先求出N-N%10的值,设为S,然后把S/10。从1循环这个数记录出现数字的次数,记得每次循环时所有数的次数都要额外+1
个人想法,不知道有没有更好的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哒恢狼
2014-03-09 · TA获得超过410个赞
知道小有建树答主
回答量:230
采纳率:0%
帮助的人:185万
展开全部
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int n = sc.nextInt();
// 创建数组,存放0-9每个数字有多少个
int[] num = new int[10];
// 循环,对每个整数求其中包含的0-9个数,然后加和
for (int i = 0; i <= n; i++) {
int[] nn = getNum(i);
for (int j = 0; j < num.length; j++) {
num[j] += nn[j];
}
}
// 输出结果
for (int i = 0; i < num.length; i++) {
System.out.print(num[i] + "  ");
}
}

// 对一个整数,求出其中包含0-9个数,返回数组
private static int[] getNum(Integer n) {
int[] nn = new int[10];
char[] chars = n.toString().toCharArray();
for (char c : chars) {
nn[Integer.parseInt(c + "")]++;
}
return nn;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式