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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 伟大的骗子 中级黑马   /  2015-6-19 12:01  /  1102 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于这个1~100不含7,小伙伴们大家都是怎么玩的啊

  1. public class NuDemo {

  2. //打印1到100内的整数,并7的跳过
  3. static void prInt(){
  4. //定义此变量用来计数,便于整理打印格式
  5. int a = 0;
  6. //for循环+if判断打印
  7. for(int x = 1;x <= 100;x++){
  8. //筛选数字大于0
  9. if(x>0 & x != 7){
  10. //筛选0到100之间的所有两位数
  11. if(x<100 & x/10 != 7 & x%10 != 7 ){
  12. a++;
  13. a = prFun(x,a);
  14. }
  15. //筛选所有三位数//这里不要看好多余,不过好处就是最大可以支持扩展到三位数及999啦,只要把上面for改掉,嘛虽然也没人么*用吧~
  16. else if(x >= 100 & x%100!=7 & x/100!=7 & x/10%10!=100 ){
  17. a++;
  18. a = prFun(x,a);
  19. }
  20. }

  21. }
  22. }
  23. //输出用函数
  24. static int prFun(int x,int a){
  25. System.out.print(x+"\t");
  26. if(a == 9){
  27. System.out.println();
  28. a = 0;
  29. }
  30. return a;
  31. }

  32. }
复制代码

嘛,后边那个prFun纯粹是用来方便整理打印格式的,完全没什么*用
那么问题来了,好麻烦啊,这东西,大约能直接调用一个系统函数传个参就搞定了?

13 个回复

正序浏览
学习了  用字符串的方式看来非常省事啊
回复 使用道具 举报
学习一下
回复 使用道具 举报
JJJD 中级黑马 2015-6-24 00:00:21
12#
学习了。。。。
回复 使用道具 举报
很不错啊,就是看不懂。就因为是基础班的原因么
回复 使用道具 举报
谢谢分享!!!
回复 使用道具 举报
        for (int x = 1; x <= 100; x++) {
                        if ((x % 10) != 7 && (x / 10) != 7) {
                                System.out.println(x);
                        }
                }


不知符不符合要求
回复 使用道具 举报
洪伟 中级黑马 2015-6-19 12:33:18
8#
  1. public class Test5 {
  2.      public static void main(String[] args){
  3.              for(int i = 1;i<=100;i++){
  4.                              if(i/10 != 7)//去除十位为7
  5.                                      if(i%10 != 7)//去除各位为7
  6.                                              System.out.println(i);
  7.              }
  8.      }
  9. }
复制代码
回复 使用道具 举报
本帖最后由 曲终烟尽 于 2015-6-19 13:00 编辑
  1. class Test7
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 func2();
  6.         }
  7.         public static void func2()//对整数操作得到所有含7的数字
  8.         {
  9.                 for(int i=0,j=0,tmp=0;i<1000;i++)
  10.                 {
  11.                         tmp=i;
  12.                         while(tmp!=0)
  13.                         {
  14.                                 j=tmp%10;
  15.                                 if(j==7)
  16.                                 {
  17.                                         System.out.println(i);
  18.                                         break;
  19.                                 }
  20.                                 tmp=tmp/10;
  21.                         }
  22.                 }
  23.         }
  24.         public static void func1()//对字符串操作得到所有含7的字符串
  25.         {
  26.                 String s="";
  27.                 for(int i=0;i<1000;i++)
  28.                 {
  29.                         s=String.valueOf(i);
  30.                         if(s.indexOf("7")!=-1)
  31.                                 System.out.println(s);
  32.                 }
  33.         }
  34. }
复制代码

回复 使用道具 举报 1 0
伟大的骗子 发表于 2015-6-19 12:10
嗯~啊,嗯,没有70~79

我改了,加上了 || 会判断除的结果,输出我没改。
回复 使用道具 举报
所有带7的,一个不差,像这种问题就是查字符,把它转成字符串就简单了。非要当作整数来处理的话比较麻烦,有一个方法,对每一个数你不停的除10,并且求余数,发现有7就找到了。,直到除的结果等于0就不循环了。
回复 使用道具 举报
class Test7
{
        public static void main(String[] args)
        {
                String s="";
                for(int i=0;i<1000;i++)
                {
                        s=String.valueOf(i);
                        if(s.indexOf("7")!=-1)
                                System.out.println(s);
                }
        }
}
回复 使用道具 举报

嗯~啊,嗯,没有70~79
回复 使用道具 举报
本帖最后由 曲终烟尽 于 2015-6-19 12:09 编辑

java> for(i=0;i<100;i++){
    | if((i/10)==7 || (i%10)==7)
    | System.out.println(i);
    | }
7
17
27
37
47
57
67
70
71
72
73
74
75
76
77
78
79
87
97
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马