A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chaojiwudi 中级黑马   /  2016-3-31 19:19  /  8348 人查看  /  28 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

36黑马币
也就是1到1000内所有9的个数  详细 ,急用 考试用的: 要有步骤最好

最佳答案

查看完整内容

package com.heima.io; public class Demo1_Nine { /* 把1到1000所有数字拆成单个的 所以用字符数组接收 拿字符数组所有元素和'9'比较相等自增 * 1.获取1到1000 的所有数字 * 2.把获取的所有数据转成字符串 * 3.把所有的字符串转成字符数组 并遍历 * 4.定义计数器num=0; 把遍历的字符数组和指定的9字符比较 如果一样就自增 * 5.打印最终num的值 */ public static void main(String[] args) { int num =0; ...

28 个回复

倒序浏览
package com.heima.io;

public class Demo1_Nine {
        /*  把1到1000所有数字拆成单个的   所以用字符数组接收  拿字符数组所有元素和'9'比较相等自增
         * 1.获取1到1000 的所有数字
         * 2.把获取的所有数据转成字符串
         * 3.把所有的字符串转成字符数组 并遍历
         * 4.定义计数器num=0;  把遍历的字符数组和指定的9字符比较  如果一样就自增
         * 5.打印最终num的值
         */
        public static void main(String[] args) {
                 int num =0;
         for (int i = 0; i<=1000; i++) {     //遍历1到  1000的所有int数         
              
             String s=Integer.toString(i);       //数字转成字符串
                 
                char[] arr=s.toCharArray();      //字符串转成字符数组
                    for(char c : arr){               //用增强for循环 遍历
                            if('9'==c){                  //判断得到的字符是否和字符'9'相等
                                    num++;
                                }       
                      }
             }
             System.out.println(num);        //打印
        }   

}       

回复 使用道具 举报
把每个数遍历出来  然后对比 看看里面有没有9 有就自增1  周末答题都有这一题
回复 使用道具 举报
是不是来送分的
回复 使用道具 举报
int count = 0 ;
                for(int i = 0; i <= 1000; i++) {
                        String s = i +"";
                        while(s.indexOf("9") != -1) {
                                System.out.println("当前数字为" + i);
                                count++;
                                s = s.substring(s.indexOf("9") + 1);
                        }
                }
                System.out.println("一共有" + count + "个9");
回复 使用道具 举报
600个  代码已上传

Num9.zip

420 Bytes, 阅读权限: 100, 下载次数: 0

600吧

回复 使用道具 举报
用int数字做的,没有转换
回复 使用道具 举报
啊海 中级黑马 2016-3-31 21:43:01
8#
  1. class Demo{ // 类名

  2.         public static void main(String[] args) {
  3.                 /*
  4.                         分析:1到1000内的所有9的个数有个位、十位、百位
  5.                         那么只要取出个位、十位、百位上的9也就是他们分别出现的次数
  6.                         就是9的个数。

  7.                         1.定义三个变量用来分别求个位、十位、百位
  8.                         2.用for循环来遍历1到1000内所有的数
  9.                         3.将个位、十位、百位每次出现的9进行累加
  10.                         4.最后把所有出现的9的次数进行相加就是9的个数。
  11.                 */
  12.                 int a=0;
  13.                 int b=0;
  14.                 int c=0;
  15.                 for(int i=0;i<1000;i++){
  16.                         //取出个位
  17.                         if(i%10==9)
  18.                                 a++;
  19.                         if(i/10%10==9)
  20.                                 b++;
  21.                         if(i/100%10==9)
  22.                                 c++;
  23.                 }
  24.                 System.out.println(a+b+c);
  25.        }
  26. }
复制代码
回复 使用道具 举报
啊海 中级黑马 2016-3-31 21:44:15
9#
class DemoForDay05 { // 类名

        public static void main(String[] args) {
                /*
                        分析:1到1000内的所有9的个数有个位、十位、百位
                        那么只要取出个位、十位、百位上的9也就是他们分别出现的次数
                        就是9的个数。

                        1.定义三个变量用来分别求个位、十位、百位
                        2.用for循环来遍历1到1000内所有的数
                        3.将个位、十位、百位每次出现的9进行累加
                        4.最后把所有出现的9的次数进行相加就是9的个数。
                */
                int a=0;
                int b=0;
                int c=0;
                for(int i=0;i<1000;i++){
                        //取出个位
                        if(i%10==9)
                                a++;
                        if(i/10%10==9)
                                b++;
                        if(i/100%10==9)
                                c++;
                }
                System.out.println(a+b+c);
}
回复 使用道具 举报
zhangtaocg 来自手机 中级黑马 2016-3-31 21:44:38
10#
提供个思路,把0-1000中的数遍历,然后转化为字符串,然后用正则表达式匹配
回复 使用道具 举报
10楼的思路不错顶
回复 使用道具 举报
Max灬xu 发表于 2016-3-31 21:28
600个  代码已上传

这是个2000个数字的  改一下就行
回复 使用道具 举报
public class GetCountFor9 {

        public static void main(String[] args) {               
                System.out.println("1~1000之间9出现的次数为:" + getCount());

        }
       
        public static int getCount(){
                int ge = 0;
                int shi = 0;
                int bai = 0;
               
                for (int i = 1;i < 1000;i++){
                        //个位
                        if (i % 10 == 9){
                                ge ++;
                        }
                        //十位
                        if (i / 10 % 10 == 9){
                                shi ++;
                        }
                        //百位
                        if (i / 100 % 10 == 9){
                                bai ++;
                        }
                       
                }
               
                return ge + shi + bai;
        }
}
回复 使用道具 举报
送你一个更强大的.....

day0330_test1.zip

7.49 KB, 阅读权限: 100, 下载次数: 0

回复 使用道具 举报
请查收

Demo.zip

744 Bytes, 下载次数: 183

回复 使用道具 举报
写一个循环,进行遍历、去判断
回复 使用道具 举报
学习了..................
回复 使用道具 举报
public class Demo2 {
        public static void main(String[] args) {
                int count = 0 ;
                for (int i = 0; i <= 1000; i++) {
                        if (i % 10 == 9 | i / 10 % 10 == 9 | i / 10 / 10 % 10 ==9 ) {
                                count++;
                        }
                }
                System.out.println(count);
        }
}
新手写的一个,不知道对不对,大神品论下,轻喷啊
回复 使用道具 举报
Ak-47 发表于 2016-4-1 02:29
public class Demo2 {
        public static void main(String[] args) {
                int count = 0 ;

,,,,,,,,,,,,,,
回复 使用道具 举报
class Demo{ // 类名

        public static void main(String[] args) {
                /*
                        分析:1到1000内的所有9的个数有个位、十位、百位
                        那么只要取出个位、十位、百位上的9也就是他们分别出现的次数
                        就是9的个数。

                        1.定义三个变量用来分别求个位、十位、百位
                        2.用for循环来遍历1到1000内所有的数
                        3.将个位、十位、百位每次出现的9进行累加
                        4.最后把所有出现的9的次数进行相加就是9的个数。
                */
                int a=0;
                int b=0;
                int c=0;
                for(int i=0;i<1000;i++){
                        //取出个位
                        if(i%10==9)
                                a++;
                        if(i/10%10==9)
                                b++;
                        if(i/100%10==9)
                                c++;
                }
                System.out.println(a+b+c);
       }
}
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马