我需要打印最多 50 个数字的斐波那契数列,我最终弄清楚了,但我还需要用某些单词替换某些可被某个数字整除的数字。我有点想通了。我得到了单词,但我无法替换数字。我尝试使用String.valueOf和replaceAll,但数字仍然不断出现。我将这部分代码留在注释中,因为它不起作用。我将在下面发布我的代码:
public static void main(String[] args) {
long n = 50;
System.out.print("1 ");
long x = 0;
long y = 1;
String mult3 = "cheese";
String mult5 = "cake";
String mult7 = "factory";
String mult2 = "blah";
for (long i = 1; i < n; i++) {
long forSum = x + y;
x = y;
y = forSum;
if(forSum==89){
System.out.println("");
}
if(forSum==10946){
System.out.println("");
}
if(forSum==1346269){
System.out.println("");
}
if(forSum==165580141){
System.out.println("");
}
if(forSum %3 == 0){
//String mult3 = String.valueOf(forSum);
//String mult4 = "cheese";
//String mult3cheese = mult3.replaceAll(mult3, mult4);
//System.out.print(mult3cheese);
System.out.print(mult3);
}
if(forSum %5 == 0){
System.out.print(mult5);
}
if(forSum %7 == 0){
System.out.print(mult7);
}
if(forSum %2 == 0){
System.out.print(mult2);
}
System.out.print(forSum + " ");
}//for loop for forSum
}//public static void main
如果您匹配了"替换数字"条件,则需要放置一些"继续"语句以跳过打印数字的行:
public static void main(String[] args) {
long n = 50;
System.out.print("1 ");
long x = 0;
long y = 1;
String mult3 = "cheese";
String mult5 = "cake";
String mult7 = "factory";
String mult2 = "blah";
for (long i = 1; i < n; i++) {
long forSum = x + y;
x = y;
y = forSum;
if(forSum==89){
continue;
}
if(forSum==10946){
continue;
}
if(forSum==1346269){
continue;
}
if(forSum==165580141){
continue;
}
if(forSum %3 == 0){
//String mult3 = String.valueOf(forSum);
//String mult4 = "cheese";
//String mult3cheese = mult3.replaceAll(mult3, mult4);
//System.out.print(mult3cheese);
System.out.print(mult3 + " ");
continue
}
if(forSum %5 == 0){
System.out.print(mult5 + " ");
continue;
}
if(forSum %7 == 0){
System.out.print(mult7 + " ");
continue;
}
if(forSum %2 == 0){
System.out.print(mult2 + " ");
continue;
}
System.out.print(forSum + " ");
}//for loop for forSum
}//public static void main
"继续"意味着"跳过此循环中的其余代码并执行循环的下一次迭代"