나는 몇 시간 동안 이것을보고 있었으므로 출력이 너무 작게 나오는 이유를 알 수 없었습니다. 제 출력물은 기대했던 것, 평평하지 않은 것, 잘못된 값으로 벗어났습니다. 오류가 내 주요 메서드 또는 중첩 된 for 루프의 while 루프 내에 있음을 확신하지만, 다른 곳에 숨어있는 모든 내용을 게시 할 것입니다.루프를 사용하여 e^x을 추정하려고 시도했습니다.
이 프로그램의 목적은 1 + x + x^2/2를 합하여 e^x의 값을 추정하는 것입니다! + x^3/3! + ... + x^n/n! 50과 100의 값과 함께 1과 10 사이의 각 값으로 n 테이크의 합계를 출력해야합니다. 따라서 12 개의 값이 모두 함께 출력됩니다.
import java.io.*;
import java.text.DecimalFormat;
public class Ch3Ex7
{
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static double x = 0;
static DecimalFormat df = new DecimalFormat("0.00");
public static void main (String[] args)
{
mainMenu();
int counter = 1;
double heldx = x;
double holderx = 0;
double denom = 1;
double printx = 0;
double f = 1;
while (counter != 100)
{
x = x*heldx;
denom++;
for(int i = 2; i<=denom; i++)
{
f = f*i;
}
holderx = holderx + x/f;
if ((counter > 0 && counter <= 10) || (counter == 50))
{
printx = 1 + heldx + holderx;
System.out.println(df.format(printx));
}
counter++;
}
System.out.println(df.format(printx));
f = 0;
x = 0;
counter = 1;
denom = 1;
callMain();
}
public static void mainMenu()
{
try
{
System.out.println("Requesting user input, press 0 to leave");
x = Integer.parseInt(br.readLine());
space();
if (x == 0)
{
System.exit(0);
}
}
catch(IOException ioe) {}
}
public static void callMain()
{
String[] x = {"A" , "B"};
Ch3Ex7.main(x);
}
public static void space()
{
System.out.println();
}
}
모든 입력 값이 잘못 되었습니까? 가까이 있니? 우리가 당신의 프로그램을 컴파일하고 시도하도록 강요하는 것이 아니라, 몇 가지 값의 결과를 보여줄 수 있습니까? – Daniel