我是一个初学者,试图编写一个java代码来生成输出数,这是2和5的主要因素。
例如,如果输入 8 ,则输出应为 2 4 5 8 。 但是,每当我打印输出时,结果将是2 5 4 5 8 5.
请告诉我哪里出错了。 谢谢
import java.util.Scanner;
class twofive {
public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter n:");
int n = sc.nextInt();
double num = 0;
double num2 = 0;
for (int i = 1; (((Math.pow(2,i))<= n) || ((Math.pow(5,i)) <=n) || (((Math.pow(2,i))<= n) && ((Math.pow(5,i)) <=n))) ; i++) {
if (( Math.pow(2,i)) <= n)
num = (Math.pow(2,i));
int convert = (int) num;{
System.out.print(convert + " ");
}
if ((Math.pow(5,i)) <= n)
num2 = (Math.pow(5,i));
int convert2 = (int) num2;
{System.out.print(convert2 + " ");
}
}
}
}
答案 0 :(得分:0)
在您查看@AmedeeVanGasse的评论后,您需要修复大括号。
Dim originalDate As Date = #2016-07-01# 'get this value from the database
Dim testDate As Date = #2016-07-15# 'this is the date you want to compare to. Use DateTime.Now to use the current date
Dim daysBetween = (testDate - originalDate).TotalDays '14
您还应该检查public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter n:");
int n = sc.nextInt();
double num = 0;
double num2 = 0;
for (int i = 1; Math.pow(2,i))<= n) || ((Math.pow(5,i)) <=n) || (((Math.pow(2,i))<= n) && ((Math.pow(5,i)) <=n))) ; i++) {
if (( Math.pow(2,i)) <= n) {
num = (Math.pow(2,i));
int convert = (int) num;
System.out.print(convert + " ");
}
if ((Math.pow(5,i)) <= n) {
num2 = (Math.pow(5,i));
int convert2 = (int) num2;
System.out.print(convert2 + " ");
}
}
}
循环和for
语句中的逻辑。他们充满了不必要的裁员。