您的位置:首页 > 编程语言 > Java开发

《java编程思想》第四章 练习9&练习10

2011-09-05 22:29 489 查看
不知道是什么原因,可能在放松的情况下不能集中精神,这么简单的两个题目硬是弄了个一小时,自己起点实在太低了。虽然说要多练习编程,可是集中不了精神也是白瞎。还是在工作中能够全身心的投入,那样才会有点效率吧。是不是这个原因?
练习9:输出斐波那契前num项数据,当然这里用的是int,再大点会溢出。标出了我的错误,细节这些东西真是太难搞,自己学的也不咋样。

public class Fibonacci
{
public static void output(int num)
{
int i=1,j=1;
if(num<1)
{
System.out.println("please input number at least 1");
return;
}
System.out.print(i+" ");
while(num>1)
{
System.out.print(j+" ");//竟然会出现j+' '这样的出错!!!
j=i+j;
i=j-i;
num--;
}
return;
}
public static void main(String[] args)
{
if(args.length!=1)
{
System.out.println("please input a number");
return;
}
output(new Integer(args[0]));
}
}

练习10:吸血鬼数字。输出四位数中的吸血鬼数字。

public class XiXueGui
{
public static void main(String[] args)
{
int number=0;
Outer:
for(int i=1001;i<9999;i++)
{
if(i%100==0)
{
continue;
}
char[] a;
//a=Integer.toString(i).toCharArray();
a=(""+i).toCharArray();
for(int j=0;j<4;j++)
for(int k=0; k<4;k++)
{
if(k==j)
{
continue;
}
for(int m=0;m<4;m++)
{
if(m==k || m==j)
{
continue;
}
if(((a[j]-'0')*10+(a[k]-'0'))*((a[m]-'0')*10+(a[6-j-k-m]-'0'))==i)
{
System.out.println(number+" "+i+"="+((a[j]-'0')*10+(a[k]-'0'))+"*"+((a[m]-'0')*10+(a[6-j-k-m]-'0')));
number++;
continue Outer;
}
}
}
}
}
}


看着会比较乱,后面那里就是char转换为int,减去'0';在编写程序时,这里也忘了,所以出错。

哎,对自己好没信心。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐