不知道是什么原因,可能在放松的情况下不能集中精神,这么简单的两个题目硬是弄了个一小时,自己起点实在太低了。虽然说要多练习编程,可是集中不了精神也是白瞎。还是在工作中能够全身心的投入,那样才会有点效率吧。是不是这个原因?
练习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';在编写程序时,这里也忘了,所以出错。
哎,对自己好没信心。