我有一个文件(Multiply.txt
),其中包含以逗号分隔的整数对,每行一对。我想将每对中的第二个元素乘以2的最小幂,以产生大于或等于该对的第一个元素的结果,并打印每个结果。例如,给定一行包含“13,8”,我想将8乘以2 1 得到16,并打印出来。
给定此输入文件
13,8
17,16
我的程序打印此输出:
0
16个
0
32
相反,我希望
16
32
如何避免打印两个零?这是我的计划:
/* Sample code to read in test cases:*/
import java.io.*;
public class Multiples_of_a_Number {
public static void main (String[] args) throws IOException {
File file = new File("multiple.txt");
BufferedReader buffer = new BufferedReader(new FileReader(file));
String line;
while ((line = buffer.readLine()) != null) {
line = line.trim();
String[] power = line.split(",");
int[] myPower = new int[power.length];
for (int i = 0; i < power.length; i++) {
String numberAsString = power[i];
myPower[i] = Integer.parseInt(numberAsString);
System.out.println(Multiply(myPower));
}
}
}
public static int Multiply(int[] n){
int t= 0;
for (int i = 0; i < n.length; i++) {
if(n[1] <= n[0]){
t = n[1] * 2;
}else {
}
}
/*while (n.length < n.length-1) {
t = (int) Math.pow(n.length, 2);
}*/
return t;
}
}
答案 0 :(得分:0)
如果你想做的唯一事情就是不显示零,那么只有当它不为零时才显示:
System.out.println(Multiply(myPower));
与
int result = Multiply(myPower);
if (result > 0) //or != if you work with negatives
{
System.out.println(result);
}
虽然我个人高度建议您查看代码。
答案 1 :(得分:0)
您的计划至少有三个缺陷:
方法main()
中的内部循环不合适。你似乎并不希望单独处理每个号码;相反,你想根据第一次,第一次处理该对的第二个元素。由于这个问题,你得到四行输出而不是两行。
方法Multiply()
没有考虑第二个数字已经大于第一个数字的可能性(即你必须乘以2 0的情况 == 1)。在这种情况下,它返回0
。一种可能的解决方法是将局部变量t
初始化为n[1]
而不是0
。
然而,Multiply()
的实施似乎更为宽泛。目前还不清楚为什么要循环遍历n
的元素(或者至少为什么要在元素0
处开始循环),如果结果大于n[0]
,则不会产生大于n[1]
的结果n[0] / 2
小于t
。我怀疑你想要做的是将n[1]
初始化为n[0]
,然后根据需要将其加倍,以便将结果增加到$("#removebutton").on("click", function() {
var questionid = $('#questionid').val();
$.ajax({
url : '../admincontroller/getdatabasedata',
type: 'DELETE',
data: questionid,
success: function(response)
{
JSON.stringify(response);
alert(response.ok);
}
});
return false;
});
以上。那根本不是你真正在做的事情。