黑马程序员技术交流社区

标题: java 基础 打印1到100之内的整数,但数字中包含9的要跳过 [打印本页]

作者: 阿姆1Q84    时间: 2016-6-2 22:15
标题: java 基础 打印1到100之内的整数,但数字中包含9的要跳过
分析以下需求,并用代码实现:
        (1)打印1到100之内的整数,但数字中包含9的要跳过
        (2)每行输出5个满足条件的数,之间用空格分隔
        (3)如:1 2 3 4 5



/*
                1,输出1到100每行5个,使用for语句嵌套
                2,包括9的跳过,使用continue
                3,用空格分隔,使用"\t"
*/
class R1{
        public static void main(String[] args) {
                for (int x = 1; x <100 ; x++ ){
                        for (int y = 1; y <=5 ; y++ ){
                                if (x %10 == 9 || x / 10 ==9){
                                        continue;
                                }
                                System.out.print("x = "+ (x++)+ "");
                        }
                        System.out.println();
                }
        }
}



请问大神,我这个怎改进一下??才能成立.就用FOR FOR IF嵌套 这样


作者: 数码店    时间: 2016-6-2 22:15
public static void printTest1(int n) {

                int count = 0;

                for (int i=1; i<=100; i++) {

                        if (i % 10 != n & i / 10 != n) {
                                count++;
                                System.out.print(i + "\t");
                                if (count % 5 == 0) {
                                        System.out.println();
                                }
                        }

                }
        }
作者: Fireflies    时间: 2016-6-2 22:34
class Demo1 {
         public static void main(String[] args) {
                         int count = 0;
                 for (int x = 1; x <100 ; x++ ){
                                                 if (x %10 == 9 || x / 10 ==9){
                                                                 continue;
                                                 }
                                                 System.out.print("x = "+ x);
                                                 count++;
                                                 if (count == 5) {
                                                         count = 0;
                                                         System.out.println();
                                                 }   
                 }
         }
}

作者: Fireflies    时间: 2016-6-2 22:39
class Demo1 {
         public static void main(String[] args) {
                 for (int x = 1; x <100 ; x++ ){
                                         if (x %10 == 9 || x / 10 ==9){
                                                         continue;
                                         }
                                         for(int y = 0; y < 5; y++) {
                                                         System.out.print("x = "+ x++);
                                         }       
                                                         System.out.println();
                 }
         }
}
刚刚没看到要用for嵌套
作者: Fireflies    时间: 2016-6-2 22:44
Fireflies 发表于 2016-6-2 22:39
class Demo1 {
         public static void main(String[] args) {
                 for (int x = 1; x  ...

for嵌套还麻烦一些,我这个是错的
作者: lifeiwangyue    时间: 2016-6-2 23:15
package test0602;

import java.util.ArrayList;
import java.util.Iterator;

public class QuChuBaoHanZhiDingdeNumber {
        public static void main(String[] args) {

                ArrayList<Integer> list = new ArrayList<>();
                addNumber(list);
                for (int i = 0; i < list.size(); i++) {
                        if (list.get(i).toString().contains("7")) {
                                list.remove(i--);
                        }
                }
                System.out.println(list);
                /*
                 * Iterator<Integer> itr = list.iterator(); while (itr.hasNext()) { if
                 * (String.valueOf(itr.next()).contains("7")) { itr.remove(); }
                 *
                 * }
                 */
                int count=0;
                for (int i = 0; i < list.size(); i++) {
                       
                        System.out.print(list.get(i) + "  ");
                        count++;
                        if(count==5){
                        System.out.println();
                        count=0;
                }}
        }

        private static void addNumber(ArrayList<Integer> list) {
                for (int i = 0; i < 100; i++) {
                        list.add(i + 1);
                }
        }

}
作者: 土菠萝    时间: 2016-6-3 14:53
本帖最后由 土菠萝 于 2016-6-3 14:58 编辑

看不看得懂,就看你了
/**
* 这是一个遇见9就死的游戏
* @author tuboluo
*
*/
public class JiuDie {
        public static void main(String[] args) {
                int k = 0;
                for(int i=1; i<100; i++){
                        if(!haveJiu(String.valueOf(i))){
                                System.out.print(i+" ");
                                k++;
                                if(k%5==0)System.out.println("");
                        }
                }
        }
        public static boolean haveJiu(String str){
                return str.contains("9");
        }
}
你的代码可以改成这样,不用两个for循环,你可以看看
        int y =0;
        for (int x = 1; x <100 ; x++ ){
            if (x %10 == 9 || x / 10 ==9){
                    continue;
            }
            System.out.print("x = "+ x+ "");
            y++;
            if(y%5==0)System.out.println("");
        }


作者: wzl100520    时间: 2016-6-3 22:48
  1.         for(int i=0;i<100;i++){
  2.                 if(i%9==0||i/10==9){
  3.                         continue;
  4.                 }if(i%5==0){
  5.                         System.out.println();
  6.                 }
  7.                 System.out.print(i+"  ");
  8.                
  9.         }
  10.         }
复制代码

作者: chengxiankun    时间: 2016-6-3 23:15
90以上就不用考虑了啊  for (int x = 1; x <100 ; x++ )
作者: yanwenyong    时间: 2016-6-6 16:38
  1. class R1 {
  2.         public static void main(String[] args) {

  3.                 /**
  4.                  * 思路 1、首先设定一段逻辑可以打印出1到100内的整数 2、在整数中判断出个位数不包含9以及十位数不存在9然后打印
  5.                  * 3、在可以打印出需求数据的前提下添加一个计数器 计数器作用,每打印一次数据计数器数值加1 加到5的时候进行一次回车操作,然后重新让
  6.                  * 计数器的值还原成0,循环往复。
  7.                  *
  8.                  * */

  9.                 int num = 0;
  10.                 for (int x = 1; x <= 100; x++) {

  11.                         if (x % 10 != 9 && x / 10 != 9) {
  12.                                 System.out.print(x + "---");
  13.                                 num++;
  14.                         }

  15.                         if (num == 5) {
  16.                                 System.out.println();
  17.                                 num = 0;
  18.                         }

  19.                 }
  20.         }
  21. }

  22. // 相比较而言
  23. /*
  24. class R1 {
  25.         public static void main(String[] args) {
  26.         //此处为获取1-99的数据可以理解
  27.                 for (int x = 1; x < 100; x++) {
  28.                         //此处使用for循环就有些没有逻辑了
  29.                         for (int y = 1; y <= 5; y++) {
  30.                                 //判断问题处理的也不错
  31.                                 if (x % 10 == 9 || x / 10 == 9) {
  32.                                         continue;
  33.                                 }
  34.                                 //此处在print中使用x++大体知道你是什么想法,
  35.                                 //但是逻辑全都混乱了,既然是输出,那就单纯输出好了
  36.                                 System.out.print("x = " + (x++) + "");
  37.                         }
  38.                         System.out.println();
  39.                 }
  40.         }
  41. }
  42. */
复制代码

作者: 再来一个果丹皮    时间: 2016-6-8 00:17

class Demo1 {
         public static void main(String[] args) {
                 for (int x = 1; x <100 ; x++ ){
                                         if (x %10 == 9 || x / 10 ==9){
                                                         continue;
                                         }
                                         for(int y = 0; y < 5; y++) {
                                                         System.out.print("x = "+ x++);
                                         }        
                                                         System.out.println();
                 }
         }
}
作者: 我是你岁哥❤环    时间: 2016-6-9 00:28
  1. public static void printTest1(int n) {

  2.                 int count = 0;

  3.                 for (int i=1; i<=100; i++) {

  4.                         if (i % 10 != n & i / 10 != n) {
  5.                                 count++;
  6.                                 System.out.print(i + "\t");
  7.                                 if (count % 5 == 0) {
  8.                                         System.out.println();
  9.                                 }
  10.                         }

  11.                 }
  12.         }
复制代码
封装成一个方法,参数 n 就是你不想见到的那个数字 例如 你要求的 9

作者: Bin丶    时间: 2016-6-10 21:52
class Demo1 {
         public static void main(String[] args) {
                         int count = 0;
                 for (int x = 1; x <100 ; x++ ){
                                                 if (x %10 == 9 || x / 10 ==9){
                                                                 continue;
                                                 }
                                                 System.out.print("x = "+ x);
                                                 count++;
                                                 if (count == 5) {
                                                         count = 0;
                                                         System.out.println();
                                                 }   
                 }
         }
}
作者: 黄晓蚁    时间: 2016-6-18 16:58
我要技术分啊- -   - - - -- - -   
作者: lx610    时间: 2016-7-6 21:43
for (int i = 0; i < 100; ) {
                       
                        for (int j = 0; j < 5; j++) {
                                if (i%10==9||i==9) {i = i +1;
                                j--;
                                continue;
                                       
                                }
                                System.out.print(i+++"\t");
                                if(i>=100){break;}
                        }
                        System.out.println();
                }
=============
不知道我这个答案合格不?
作者: gczsjj    时间: 2017-1-5 23:40
/*
        (1)打印1到100之内的整数,但数字中包含9的要跳过
        (2)每行输出5个满足条件的数,之间用空格分隔
        (3)如:1 2 3 4 5

*/
class Test01 {
        public static void main(String[] args) {
                int count = 0;
                for(int i =1;i <= 100;i++){
                        //求一个数的个位与十位
                        int ge,shi;
                        ge = i % 10;
                        shi = i / 10 ;
                        //判断个位与十位中是否包含9
                        if(ge == 9 || shi == 9) {
                                continue;
                        }
                        System.out.print(i + " ");
                        count++;
                        if(count % 5 == 0)
                                System.out.println();
                }
                System.out.println();
        }
}


作者: Rhwan    时间: 2017-1-10 18:22
public class Test3 {
        public static void main(String[] args) {
                int count =0;
                for (int i = 1; i <= 100; i++) {
                                if ((i+"").contains("9")) {
                                        continue;
                                }                       
                        System.out.print(i+"  ");
                        count++;
                        if (count%5==0) {
                                System.out.println();
                        }
                }
        }
}       

作者: 时光未桀    时间: 2017-1-15 12:54
必须要用到continue

作者: 蓝先生    时间: 2018-5-26 22:19
/*
分析以下需求,并用代码实现:
1. 打印1到100之间的整数(包含1和100),当包含1的跳过;
2. 每行输出5个,每个数字用空格隔开;
3. 如:2  3  4  5  6
       7  8  9 20  22
       ......

*/
public class Test2 {
    public static void main(String[] args) {
        int count =0;
        for (int i = 1; i <=100; i++) {
            if(i%10!=1 && i/10%10!=1 && i/100%10!=1){
                count++;
              System.out.print(i+" ");
                if(count%5==0){
                    System.out.println();
                }
            }
        }

    }
}

刚刚做了一个类似的




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