黑马程序员技术交流社区
标题:
关于打印1~100不含7的数
[打印本页]
作者:
伟大的骗子
时间:
2015-6-19 12:01
标题:
关于打印1~100不含7的数
关于这个1~100不含7,小伙伴们大家都是怎么玩的啊
public class NuDemo {
//打印1到100内的整数,并7的跳过
static void prInt(){
//定义此变量用来计数,便于整理打印格式
int a = 0;
//for循环+if判断打印
for(int x = 1;x <= 100;x++){
//筛选数字大于0
if(x>0 & x != 7){
//筛选0到100之间的所有两位数
if(x<100 & x/10 != 7 & x%10 != 7 ){
a++;
a = prFun(x,a);
}
//筛选所有三位数//这里不要看好多余,不过好处就是最大可以支持扩展到三位数及999啦,只要把上面for改掉,嘛虽然也没人么*用吧~
else if(x >= 100 & x%100!=7 & x/100!=7 & x/10%10!=100 ){
a++;
a = prFun(x,a);
}
}
}
}
//输出用函数
static int prFun(int x,int a){
System.out.print(x+"\t");
if(a == 9){
System.out.println();
a = 0;
}
return a;
}
}
复制代码
嘛,后边那个prFun纯粹是用来方便整理打印格式的,完全没什么*用
那么问题来了,好麻烦啊,这东西,大约能直接调用一个系统函数传个参就搞定了?
作者:
曲终烟尽
时间:
2015-6-19 12:08
本帖最后由 曲终烟尽 于 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
作者:
伟大的骗子
时间:
2015-6-19 12:10
曲终烟尽 发表于 2015-6-19 12:08
java> for(i=0;i
嗯~啊,嗯,没有70~79
作者:
曲终烟尽
时间:
2015-6-19 12:17
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);
}
}
}
作者:
曲终烟尽
时间:
2015-6-19 12:19
所有带7的,一个不差,像这种问题就是查字符,把它转成字符串就简单了。非要当作整数来处理的话比较麻烦,有一个方法,对每一个数你不停的除10,并且求余数,发现有7就找到了。,直到除的结果等于0就不循环了。
作者:
曲终烟尽
时间:
2015-6-19 12:21
伟大的骗子 发表于 2015-6-19 12:10
嗯~啊,嗯,没有70~79
我改了,加上了 || 会判断除的结果,输出我没改。
作者:
曲终烟尽
时间:
2015-6-19 12:28
本帖最后由 曲终烟尽 于 2015-6-19 13:00 编辑
class Test7
{
public static void main(String[] args)
{
func2();
}
public static void func2()//对整数操作得到所有含7的数字
{
for(int i=0,j=0,tmp=0;i<1000;i++)
{
tmp=i;
while(tmp!=0)
{
j=tmp%10;
if(j==7)
{
System.out.println(i);
break;
}
tmp=tmp/10;
}
}
}
public static void func1()//对字符串操作得到所有含7的字符串
{
String s="";
for(int i=0;i<1000;i++)
{
s=String.valueOf(i);
if(s.indexOf("7")!=-1)
System.out.println(s);
}
}
}
复制代码
作者:
洪伟
时间:
2015-6-19 12:33
public class Test5 {
public static void main(String[] args){
for(int i = 1;i<=100;i++){
if(i/10 != 7)//去除十位为7
if(i%10 != 7)//去除各位为7
System.out.println(i);
}
}
}
复制代码
作者:
张安哲
时间:
2015-6-19 12:36
for (int x = 1; x <= 100; x++) {
if ((x % 10) != 7 && (x / 10) != 7) {
System.out.println(x);
}
}
不知符不符合要求
作者:
Happe_Sun
时间:
2015-6-19 20:40
谢谢分享!!!
作者:
xu521cheng
时间:
2015-6-23 23:26
很不错啊,就是看不懂。就因为是基础班的原因么
作者:
JJJD
时间:
2015-6-24 00:00
学习了。。。。
作者:
银哥
时间:
2015-6-24 09:31
学习一下
作者:
limingdada
时间:
2015-6-24 09:34
学习了 用字符串的方式看来非常省事啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2