Java程序未提供所需的输出
问题是打印以下系列:Java程序未提供所需的输出,java,Java,问题是打印以下系列: (a+(2^0)*b), ((a+(2^0)*b)+(a+(2^1)*b)), ((a+(2^0)*b)+(a+(2^1)*b)+(a+(2^2)*b)...+(a+(2^(n-1))*b)) a、b、n和t的值由用户输入。”t'表示用户想要计算的序列数。例如,如果t=2,则用户可以给出a、b和n的两个单独输入,并获得两个不同的序列 if t=2 a=0,b=2,n=10 至于第二系列— a=5,b=3,n=5 输出应为: 2 6 14 30 62 126 254
(a+(2^0)*b), ((a+(2^0)*b)+(a+(2^1)*b)), ((a+(2^0)*b)+(a+(2^1)*b)+(a+(2^2)*b)...+(a+(2^(n-1))*b))
a、b、n和t的值由用户输入。”t'表示用户想要计算的序列数。例如,如果t=2,则用户可以给出a、b和n的两个单独输入,并获得两个不同的序列
if t=2
a=0,b=2,n=10
至于第二系列—
a=5,b=3,n=5
输出应为:
2 6 14 30 62 126 254 510 1022 2046 (1st series)
8 14 26 50 98 (2nd series)
下面的程序未显示所需的输出。有人能指出错误吗
import java.io.*;
class Solution{
public static void main(String []argh){
Scanner in = new Scanner(System.in);
int t=in.nextInt();
int s=0;
for(int i=0;i<t;i++){
int a = in.nextInt();
int b = in.nextInt();
int n = in.nextInt();
for(int j=0;j<n;j++)
{
s = s+(a+(2^j)*b);
System.out.print(s+" ");
}
}
in.close();
}
}
import java.io.*;
类解决方案{
公共静态void main(字符串[]argh){
扫描仪输入=新扫描仪(系统输入);
int t=in.nextInt();
int s=0;
对于(int i=0;i在第二个内循环中,变量j从未更新过(您使用的是i)。您的问题可能来自这里。在第二个内循环中,变量j从未更新过(您使用的是i)。您的问题可能来自这里。在第二个循环中,它应该是j,而不是我喜欢的->(int j=0;j在第二个循环中,它应该是j,而不是我喜欢的->(int j=0;jj
而不是i
),并使用java.lang.Math.pow
你在String[]argh
=>String[]args
中也有打字错误
我认为ints
应该是double s
import java.io.*;
import java.lang.*;
class Solution{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int t=in.nextInt();
double s=0;
for(int i=0;i<t;i++){
int a = in.nextInt();
int b = in.nextInt();
int n = in.nextInt();
for(int j=0 ; j<n ; i++)
{
s = s+(a+(java.lang.Math.pow(2, j))*b);
System.out.print(s+" ");
}
}
in.close();
}
}
import java.io.*;
导入java.lang.*;
类解决方案{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int t=in.nextInt();
双s=0;
对于(int i=0;ij
而不是i
),使用java.lang.Math.pow
你在String[]argh
=>String[]args
中也有打字错误
我认为ints
应该是double s
import java.io.*;
import java.lang.*;
class Solution{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int t=in.nextInt();
double s=0;
for(int i=0;i<t;i++){
int a = in.nextInt();
int b = in.nextInt();
int n = in.nextInt();
for(int j=0 ; j<n ; i++)
{
s = s+(a+(java.lang.Math.pow(2, j))*b);
System.out.print(s+" ");
}
}
in.close();
}
}
import java.io.*;
导入java.lang.*;
类解决方案{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int t=in.nextInt();
双s=0;
对于(int i=0;i^
在java中并不意味着强大。^
表示按位异或。使用java.lang.Math.pow
方法。^
在java中并不意味着强大。^
表示按位异或。改为使用java.lang.Math.pow
方法。内环完成后,序列到s应该使用s=0tart fresh内部循环完成后,你应该有s=0才能重新开始系列真不敢相信我犯了那个错误。谢谢!仍然没有得到所需的输出。真不敢相信我犯了那个错误。谢谢!仍然没有得到所需的输出。我编辑了答案我编辑了答案