黑马程序员技术交流社区

标题: 求思路,懵逼了一晚上了 [打印本页]

作者: 黑暗中漫舞    时间: 2016-7-1 23:32
标题: 求思路,懵逼了一晚上了
(1)打印1到100之内的整数,但数字中包含9的要跳过
(2)每行输出5个满足条件的数,之间用空格分隔
(3)如:1 2 3 4 5
作者: 建建Happy    时间: 2016-7-1 23:41
class Homework01 {
        /*
        (1)打印1到100之内的整数,但数字中包含9的要跳过
        (2)每行输出5个满足条件的数,之间用空格分隔
        (3)如:1 2 3 4 5
        */
        public static void main(String[] args) {
                //统计个数 用于完成第三个需求
                int count = 0 ;
                //需求一:1~100的整数
                for (int i = 1; i <= 100 ; i++) {
                        /*
                        需求二:数字中包含9的要跳过
                        数字中包含9的 有两种
                        1、个位数为9  i%10 == 9
                        2、十位数为9  i/10%10 ==9
                        */
                        if ( i % 10 == 9 || i / 10 % 10 == 9) {
                                continue;
                        }
                        System.out.print(i + "\t");
                        /*
                        需求三:每行输出5个,当5个时换行,统计个数,是5的倍数是换行
                        */
                        if (++count % 5 == 0) {
                                System.out.println();
                        }
                }
        }
}
作者: 建建Happy    时间: 2016-7-1 23:43
class Homework01 {
        /*
        (1)打印1到100之内的整数,但数字中包含9的要跳过
        (2)每行输出5个满足条件的数,之间用空格分隔
        (3)如:1 2 3 4 5
        */
        public static void main(String[] args) {
                //统计个数 用于完成第三个需求
                int count = 0 ;
                //需求一:1~100的整数
                for (int i = 1; i <= 100 ; i++) {
                        /*
                        需求二:数字中包含9的要跳过
                        数字中包含9的 有两种
                        1、个位数为9  i%10 == 9
                        2、十位数为9  i/10%10 ==9
                        */
                        if ( i % 10 == 9 || i / 10 % 10 == 9) {
                                continue;
                        }
                        System.out.print(i + "\t");
                        /*
                        需求三:每行输出5个,当5个时换行,统计个数,是5的倍数是换行
                        */
                        if (++count % 5 == 0) {
                                System.out.println();
                        }
                }
        }
}
作者: TommingYu    时间: 2016-7-2 00:03
class Homework01 {
        /*
        (1)打印1到100之内的整数,但数字中包含9的要跳过
        (2)每行输出5个满足条件的数,之间用空格分隔
        (3)如:1 2 3 4 5
        */
        public static void main(String[] args) {
                //统计个数 用于完成第三个需求
                int count = 0 ;
                //需求一:1~100的整数
                for (int i = 1; i <= 100 ; i++) {
                        /*
                        需求二:数字中包含9的要跳过
                        数字中包含9的 有两种
                        1、个位数为9  i%10 == 9
                        2、十位数为9  i/10%10 ==9
                        */
                        if ( i % 10 == 9 || i / 10 % 10 == 9) {
                                continue;
                        }
                        System.out.print(i + "\t");
                        /*
                        需求三:每行输出5个,当5个时换行,统计个数,是5的倍数是换行
                        */
                        if (++count % 5 == 0) {
                                System.out.println();
                        }
                }
        }
}
作者: perfect_class    时间: 2016-7-2 13:36
建建Happy 发表于 2016-7-1 23:41
class Homework01 {
        /*
        (1)打印1到100之内的整数,但数字中包含9的要跳过

谢谢,分享,学习了!
作者: hubei3805979    时间: 2016-7-2 14:43
本帖最后由 hubei3805979 于 2016-7-2 14:50 编辑

int a = 0;
for(int i = 0; i <= 100 ; i ++ ){
        if  (i % 9 == 0  &&  i /10==9){
        continue;
         }
}

作者: 安静的喝会奶    时间: 2016-7-2 15:11
class HomeWork
{
        public static void main(String[] args)
        {
                int count=0;
                for(int i=1;i<100;i++)
                {
                        if(!(i%10==9||i/10==9))
                        {
                                System.out.print(i+" ");
                                count++;
                                if(count%5==0)
                                {
                                        System.out.println();
                                }
                               
                        }
                }
        }
}

作者: 夏:默秋凉    时间: 2016-7-2 23:56

public  class demo5
{
        public  static void main(String[] args)
        {
                int count = 0;
                for (int i = 1;i<=100 ;i++ )
                {
                        if (i/10 == 9 || i%10 == 9)
                        {
                                continue;
                        }
                        count++;//计数器功能,加1操作
                        //每一行打印5个数据
                        if (count % 5 == 0)
                        {
                                //System.out.print(i+",");
                                System.out.print("\n");               
                        }
                        System.out.print(i+",");
                       
                       
                }
                System.out.print("\n");
                System.out.println("count = "+count);
        }
}
作者: 糊图    时间: 2016-7-2 23:58
加一对10取模为0的数不打印就可以了,再一个就是定义一个计数器,当满足要求的数达到5的倍数的时候就打印换行,其余时候只打印不换行,你可以按照这个思路搞一下
作者: 他的好    时间: 2016-7-3 02:30
  都是正解
作者: 15242694137    时间: 2016-7-3 06:52
。。。。。。。。。。。
作者: NicerHuang    时间: 2016-7-3 07:56
class Test1 {
        public static void main(String[] args) {
                int count = 0;
                for (int i = 1;i <= 100 ;i++ ) {
                          if (i % 10 != 9){
                                  System.out.print(i+" ");
                                   count++;
                                  if (count % 5 == 0) {
                                          System.out.println();
                                  }
                          }
                }
        }
}
作者: hlhdidi    时间: 2016-7-3 22:21
楼上的思路正确但是不够简单,问题在于数字中包含9的跳过,那么可以用数组+""转化为字符串,用contains方法可以简便的得出是否包含9.代码如下:
  1. public class Demo1 {
  2.         public static void main(String[] args) throws IOException {
  3.             int count=1;
  4.                 for(int i=1;i<100;i++) {
  5.                    if(isNine(i)) {
  6.                                    continue;
  7.                    }
  8.                    System.out.print(i+"   ");
  9.                    if(count%5==0) {
  10.                            System.out.println();
  11.                    }
  12.                    count++;
  13.            }
  14.         }

  15.         public static boolean isNine(int i) {
  16.                 String value=i+"";
  17.                 return value.contains("9");
  18.         }
  19. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2