Java 给定三个整数a、b和n,输出以下序列:a+;20b,a和x2B;20b和x2B;21b,…,a+;20b和x2B;21b++;2n−;1ba和x2B;20b,a和x2B;20b和x2B;21b,…,a+;20b和x2B;21b++;2n−;1b
限制条件:Java 给定三个整数a、b和n,输出以下序列:a+;20b,a和x2B;20b和x2B;21b,…,a+;20b和x2B;21b++;2n−;1ba和x2B;20b,a和x2B;20b和x2B;21b,…,a+;20b和x2B;21b++;2n−;1b,java,loops,Java,Loops,限制条件: 0≤T≤五百 0≤a、 b≤五十 一,≤N≤十五 样本输入: 2 0 2 10 5 3 5 样本输出 2 6 14 30 62 126 254 510 1022 2046 8 14 26 50 98 这在我的IDE中有效,但当我在hackerrank.com的在线编辑器中尝试时,它会引发一个异常: 线程“main”java.util.NoSuchElementException中出现异常:找不到行 java.util.Scanner.nextLine(Scanner.java
- 0≤T≤五百
- 0≤a、 b≤五十
- 一,≤N≤十五
2
0 2 10
5 3 5
样本输出
2 6 14 30 62 126 254 510 1022 2046
8 14 26 50 98
这在我的IDE中有效,但当我在hackerrank.com的在线编辑器中尝试时,它会引发一个异常:
线程“main”java.util.NoSuchElementException中出现异常:找不到行
java.util.Scanner.nextLine(Scanner.java:1585)位于
Solution.main(Solution.java:24)
请解释为什么会发生这种情况。谢谢
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
int[] a = new int[10];
int[] b = new int[10];
int[] n = new int[10];
int t;
int sum;
StringBuilder sb =new StringBuilder();
Scanner iput = new Scanner(System.in);
t = Integer.parseInt(iput.nextLine());
if (t <= 500) {
for (int i = 0; i < t; i++) {
a[i] = Integer.parseInt(iput.next());
b[i] = Integer.parseInt(iput.next());
n[i] = Integer.parseInt(iput.next());
iput.nextLine();
}
} else
System.out.println("Enter value less than 500");
if (t <= 500) {
for (int i = 0; i < t; i++) {
if (a[i] <= 50 && b[i] <= 50 && n[i] <= 15 && n[i] != 0) {
for (int j=0;j<n[i];j++) {
sum = a[i];
for (int k = j;k >=0; k--) {
sum+=Math.pow(2,k)*b[i];
}
sb=sb.append(Integer.toString(sum)).append(" ");
}
System.out.println(sb);
sb.delete(0,sb.toString().length());
} else
System.out.println("Enter the values within the allowed limits");
}
}
}
}
import java.io.*;
导入java.util.*;
公共类解决方案{
公共静态void main(字符串[]args){
int[]a=新的int[10];
int[]b=新的int[10];
int[]n=新的int[10];
int t;
整数和;
StringBuilder sb=新的StringBuilder();
扫描仪iput=新扫描仪(System.in);
t=Integer.parseInt(iput.nextLine());
如果(tRemoveiput.nextLine();
在第24行,这样就不会发生额外的读取。Removeiput.nextLine();
在第24行,这样就不会发生额外的读取。我认为下面的方法应该有效。因为t的值可以高达500,所以数组可以是int[]a=new int[t]或new int[500]
注意,如果您使用int[t],则在定义a、b和n之前获取t的值
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
int[] a = new int[500];
int[] b = new int[500];
int[] n = new int[500];
int t;
int sum;
StringBuilder sb =new StringBuilder();
Scanner iput = new Scanner(System.in);
t = Integer.parseInt(iput.nextLine());
if (t <= 500) {
for (int i = 0; i < t; i++) {
a[i] = Integer.parseInt(iput.next());
b[i] = Integer.parseInt(iput.next());
n[i] = Integer.parseInt(iput.next());
}
} else
System.out.println("Enter value less than 500");
if (t <= 500) {
for (int i = 0; i < t; i++) {
if (a[i] <= 50 && b[i] <= 50 && n[i] <= 15 && n[i] != 0) {
for (int j=0;j<n[i];j++) {
sum = a[i];
for (int k = j;k >=0; k--) {
sum+=Math.pow(2,k)*b[i];
}
sb=sb.append(Integer.toString(sum)).append(" ");
}
System.out.println(sb);
sb.delete(0,sb.toString().length());
} else
System.out.println("Enter the values within the allowed limits");
}
}
}
}
import java.io.*;
导入java.util.*;
公共类解决方案{
公共静态void main(字符串[]args){
int[]a=新的int[500];
int[]b=新的int[500];
int[]n=新的int[500];
int t;
整数和;
StringBuilder sb=新的StringBuilder();
扫描仪iput=新扫描仪(System.in);
t=Integer.parseInt(iput.nextLine());
如果(t我认为下面的方法应该有效。因为t的值可以高达500,所以数组可以是int[]a=new int[t]或new int[500]
注意,如果您使用int[t],则在定义a、b和n之前获取t的值
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
int[] a = new int[500];
int[] b = new int[500];
int[] n = new int[500];
int t;
int sum;
StringBuilder sb =new StringBuilder();
Scanner iput = new Scanner(System.in);
t = Integer.parseInt(iput.nextLine());
if (t <= 500) {
for (int i = 0; i < t; i++) {
a[i] = Integer.parseInt(iput.next());
b[i] = Integer.parseInt(iput.next());
n[i] = Integer.parseInt(iput.next());
}
} else
System.out.println("Enter value less than 500");
if (t <= 500) {
for (int i = 0; i < t; i++) {
if (a[i] <= 50 && b[i] <= 50 && n[i] <= 15 && n[i] != 0) {
for (int j=0;j<n[i];j++) {
sum = a[i];
for (int k = j;k >=0; k--) {
sum+=Math.pow(2,k)*b[i];
}
sb=sb.append(Integer.toString(sum)).append(" ");
}
System.out.println(sb);
sb.delete(0,sb.toString().length());
} else
System.out.println("Enter the values within the allowed limits");
}
}
}
}
import java.io.*;
导入java.util.*;
公共类解决方案{
公共静态void main(字符串[]args){
int[]a=新的int[500];
int[]b=新的int[500];
int[]n=新的int[500];
int t;
整数和;
StringBuilder sb=新的StringBuilder();
扫描仪iput=新扫描仪(System.in);
t=Integer.parseInt(iput.nextLine());
如果(t)这是一个在线练习(就像一个挑战!)。请建议一种完成它的方法。当我使用nextInt()时,为什么要使用Integer.parseInt(iput.next())
而不是iput.nextInt()
我无法以问题中指定的格式输入。而且它也不适用于自定义输入!!@NawinSS您不提供输入应该是您的错。这是一个在线练习(就像一个挑战!)。请建议一种完成方法。为什么使用Integer.parseInt(iput.next())
而不是iput.nextInt()
?当我使用nextInt()时我无法按问题中指定的格式输入。自定义输入也不适用!!@NawinSS建议不输入应该是你的错。谢谢,在我删除了那行之后它就可以了!!!但是你能解释一下幕后发生的事情吗?有没有更好的方法来回答这个问题!?因为显然这对我来说不起作用r所有的测试用例!!非常感谢任何帮助。谢谢。@NawinSS你能回答这个问题吗?我面临着同样的问题!谢谢在我删除了那一行之后它能起作用!!!但是你能解释一下幕后发生的事吗?有没有更好的方法来回答这个问题!?因为显然这对所有的测试用例都不起作用!!任何帮助都是非常感谢的泰德。谢谢。@NawinSS你能回答这个问题吗?我面临着同样的问题!