所以我试图在Java程序中实现这个数学问题,我找到了解决方案,但这有点不对。解决方案应该是1.111111111111111,但是我的解决方案是
我的代码如下:
{
public static void main(String[]args)
{
double q=0.1;
double n=1;
for(double i=0; i<15; i++)
{
n+=q;
}
System.out.print(n);
}
}
答案 0 :(得分:0)
类似这样的东西:
#include <signal.h>
volatile sig_atomic_t x = 0;
void sigfpe_handler(int signum) {
x = 5;
// Notice that there is no exit()
}
int main() {
signal(SIGFPE, sigfpe_handler);
x = 10 / x;
return 0;
}
这是系列public static void main(String[]args)
{
double q=0.1;
double n=1;
for(int i=0; i<15; i++){
n+=q/(Math.pow(10, i));
}
System.out.print(n);
}
编辑:我也应该是int,因为k是int序列,以便尽可能减少错误
答案 1 :(得分:0)
您的代码未遵循几何级数和。您需要通过将幂从0递增到N(其中N是限制)来添加所有项目。这是从0到15的16个元素系列的解决方案。
public static void main(String[] args) {
double q=0.1;
double answer = 0.0;
int N = 15;
for(double i=0; i<=N; i++)
{
answer += Math.pow(q, i);
}
System.out.print(answer);
}