黑马程序员技术交流社区

标题: 求简化,打印1到100之内的整数,但数字中包含7的要跳过。 [打印本页]

作者: lvzhfeng    时间: 2015-6-26 18:10
标题: 求简化,打印1到100之内的整数,但数字中包含7的要跳过。
  1. package com.itheima;

  2. /**
  3. * 第七题: 编写程序,打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72
  4. * @author Machel
  5. */
  6. class Test7{
  7.         public static void main(String[] args){
  8.                 char log = '7';
  9.                 char[] intArr;
  10.                 int num = 0;
  11.                 for(int i=1; i<=100; i++)
  12.                 {
  13.                         intArr = Integer.toString(i*100).toCharArray();
  14.                         for(int j=0; j<3; j++)
  15.                         {
  16.                                 if(intArr[j]==log)
  17.                                         num++;
  18.                         }
  19.                         if(num==0)
  20.                         {
  21.                                 if(i==100)
  22.                                         System.out.print("["+i+"]");
  23.                                 else
  24.                                         System.out.print("["+i+"]"+",");
  25.                         }
  26.                         else
  27.                                 num = 0;
  28.                 }
  29.         }
  30. }
复制代码



作者: liu100chao    时间: 2015-6-26 18:40
class Test6
{
        public static void main(String[] args)
        {
                for(int i=0;i<100;i++)                        //遍历1到100之内的整数
                {
                        if(i%10!=7 && i/10!=7)                //只要个位和十位上的都不等于7就打印;
                                System.out.print(i+"\t");
                }
        }
}

作者: keto    时间: 2015-6-26 19:32
学习了。谢谢分享。。
作者: heima591046495    时间: 2015-6-26 19:40
除了楼上的方法,还有一种方法就是把整数转换为字符串,用indexof方法判断x中是否包含7,包含则返回fals,然后输出x
作者: 小灬清新丶    时间: 2015-6-26 20:08
沙发层说的对。。
作者: lvzhfeng    时间: 2015-6-26 20:49
liu100chao 发表于 2015-6-26 18:40
class Test6
{
        public static void main(String[] args)

最近在学String,脑子都学死了。光往字符串上想了
作者: 夜空中最亮的星    时间: 2015-6-26 21:31
学习了两种方法,谢谢分享!
作者: 含笑    时间: 2015-6-26 21:49
第二种很简便
作者: 进军黑马    时间: 2015-6-26 22:03
  很好的。条条大路通罗马,  就是有不同的法方!!!
作者: liming_heima    时间: 2015-6-26 22:40
感觉最直接的就是字符串截取了。
作者: 午后阿怪    时间: 2015-8-6 21:54
楼主和2楼的方法都很好,赞一个
作者: hushun135    时间: 2015-9-13 17:07
数学的方法还是尽量往数学那边靠!
作者: gannenggufen    时间: 2015-9-13 20:34
沙发666。。
作者: yuzhouyichen    时间: 2015-9-13 22:38
二楼的方法确实不错
作者: 空心木    时间: 2015-9-13 23:23
看看解答还不错,高手如云
作者: yangshibai    时间: 2015-9-13 23:38
二楼的很好啊
作者: 1406046710    时间: 2015-9-14 00:55
学到了

作者: llwhcm    时间: 2015-9-14 01:08
不错不错
作者: MilesMatheson    时间: 2015-9-14 02:15
二楼和我写的一样,哈哈,我当时也是这么些的
作者: 插兜    时间: 2015-9-14 08:10
好厉害,佩服佩服
作者: 插兜    时间: 2015-9-14 08:20
我试了下,楼主的输出结果是1到100,没有过滤任何数字
作者: 插兜    时间: 2015-9-14 08:22
没看清,过滤了7。
作者: 插兜    时间: 2015-9-14 08:29
楼主能帮我解释下,这块代码的意思吗,一直看不懂。为什么i*100,j又代表什么。
intArr = Integer.toString(i*100).toCharArray();
                        for(int j=0; j<3; j++)
                        {
                                if(intArr[j]==log)
                                        num++;
                        }
作者: ln0491    时间: 2015-9-14 09:15
学习了。谢谢分享。。
作者: w_wyt    时间: 2015-12-4 13:39
liu100chao 发表于 2015-6-26 18:40
class Test6
{
        public static void main(String[] args)

这个方法牛逼
作者: wyasln    时间: 2015-12-4 13:54
楼主的算法略啰嗦
作者: jiangshicun007    时间: 2015-12-4 15:07
liu100chao 发表于 2015-6-26 18:40
class Test6
{
        public static void main(String[] args)

我敲的代码你你一样,刚打算给楼主回复的!!!!
作者: didixyy    时间: 2015-12-4 15:10
学习了。谢谢分享。。
作者: 奔跑着    时间: 2015-12-5 21:36
二楼的方法确实不错
作者: Little_jie    时间: 2015-12-5 21:57
学习了不同的方法了
作者: zmttt    时间: 2015-12-5 22:07
1楼说得对!!
作者: 冷光之神    时间: 2015-12-5 22:11
666                     
作者: 魏志林    时间: 2015-12-6 10:39
高手啊,这么简单居然
作者: 耿帅东    时间: 2015-12-6 13:23
二楼的靠谱,跟我想的一样
作者: 张作辉    时间: 2016-7-2 00:41
谢谢!我有学到东西了
作者: 扬帆起航fonnson    时间: 2016-7-2 19:59
lvzhfeng 发表于 2015-6-26 20:49
最近在学String,脑子都学死了。光往字符串上想了

for(int i = 1;i<=100; i++ )
                {
                        String num = i+"";
                        boolean mi = num.contains("7");
                        if(!mi){
                         System.out.print(i+" ");
                        }
                }
我也是
作者: 缘自天方    时间: 2016-7-2 20:52
真不错啊   学习学习
作者: weidong10heima    时间: 2016-7-2 21:31
/*打印1到100之内的整数,但数字中包含7的要跳过*/

class MyDemo_TiaoGuo7 {
        public static void main(String[] args)
        {       //以下是方法1
                for(int i = 1; i<=100; i++){
                        int ge = i % 10 ;
                        int shi = i / 10 % 10 ;
                        if (ge ==7 || shi  == 7 )
                        {
                                continue;
                        }
                        System.out.print(i+"  " );
                }
                //以下是方法2
                /*for (int x = 1;x <=100;x++){
                        int y = x/10;
                        if ( x-y*10  == 7|| x/10 == 7){
                                continue;
                        }
                        System.out.print(x+"  " );
                }*/

        }
}
作者: TCK8888    时间: 2016-7-3 00:24
温故知新
作者: 陈枫_123    时间: 2016-7-3 00:45
最好要加一点注释~~
作者: luoyi171    时间: 2016-7-3 01:18
2L厉害,新手看的懂的程序,楼主的那个表示有难度!
作者: 灰灰010    时间: 2017-1-1 15:49
这个厉害
作者: 袁志娜    时间: 2017-1-3 01:13





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