黑马程序员技术交流社区

标题: 循环嵌套问题 [打印本页]

作者: 楞个里格朗    时间: 2013-8-29 09:02
标题: 循环嵌套问题
本帖最后由 黄兴旺 于 2013-8-29 19:28 编辑

打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72

怎么让内循环的条件也 走起来:int y=0;y<=9;y++;
                                                     if(x==7+10*y)
                                                      continue;
                                                     if(x==70+y)
                                                       continue;


作者: 月黑风高    时间: 2013-8-29 09:22
        public static void main(String[] args) {
                /*
                 * 题目:打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72
                 * 思路:
                 * 1.先打印1-100之内的整数
                 * 2.再在循环中判断出个位和十位数字中含有7的整数
                 */
                for (int i = 1; i < 100; i++) {
                        //10之内只有一个7
                        if(i<10&&i==7)
                                continue;
                        //大于10的数字个位和十位包含7的整数跳过
                        else if(i>10&&i%10==7)
                                continue;
                        else if(i>10&&i/10==7)
                                continue;
                        else
                                System.out.println(i);
                }
        }
        亲,这个题目考查的目的主要是数字个个位数的如何拆分?注意到木有?

作者: 楞个里格朗    时间: 2013-8-29 09:28
我也用过&&这个运算符,但是总是说没有定义,编译不通过,好奇怪 我再试试
作者: 楞个里格朗    时间: 2013-8-29 09:30
OK了 还是我的代码量不够啊。离你的已经不差多少了{:soso_e154:}
作者: 月黑风高    时间: 2013-8-29 09:32
楞个里格朗 发表于 2013-8-29 09:30
OK了 还是我的代码量不够啊。离你的已经不差多少了

呵呵,重在思想,有木有解决问题的思路,亲?
1.分析题目
2.写思路
3.实际编写
4.运行测试

作者: 薛淑凯    时间: 2013-8-29 09:33
月黑风高 发表于 2013-8-29 09:22
public static void main(String[] args) {
                /*
                 * 题目:打印1到100之内的整数,但数字中包含7的要跳 ...

把小于10的判断去掉更好吧,没什么意义

作者: 月黑风高    时间: 2013-8-29 09:36
薛淑凯 发表于 2013-8-29 09:33
把小于10的判断去掉更好吧,没什么意义

只是考虑的过程,顺手谢了,说的对,亲

作者: 328078121    时间: 2013-8-29 09:42
for (int i = 1; i < 100; i++)
                {
                               
                                if(String.valueOf(i).indexOf('7')!=-1)
                                        continue;
                                System.out.println(i);
                 }
作者: 328078121    时间: 2013-8-29 09:46
328078121 发表于 2013-8-29 09:42
for (int i = 1; i < 100; i++)
                {
                               

总的来说有算法,有些东西考虑就很累,开始学习JAVA,不要考虑太多算法,就考虑有什么功能,怎么用!等到后期有一定基础了,再深入学习算法,优化程序!其实这个程序中indexof运用到遍历的确性能很低下~~!!
算法好的确会提高效率~

作者: say_NO!    时间: 2013-8-29 10:19
  1. 首先想明白各位上的7十位上的七百位上的7.
  2. int n=7;
  3. for (int i=1;i<100;i++){
  4. if(i%n==0||i%10==n||i/10%10==n){
  5. System.out.print("过\t");
  6. }else{
  7. System.out.print(i+"\t")
  8. }
  9. }
复制代码

作者: 行如止水    时间: 2013-8-29 18:31
这个就是考虑数字的拆分,你把一个整数按位拆分一下,然后再做判断。




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