使用Java的HackerRank中的最小-最大和问题(错误)
给定五个正整数,找出可以通过将五个整数中的四个整数求和来计算的最小值和最大值。然后将各自的最小值和最大值打印为一行两个空格分隔的长整数使用Java的HackerRank中的最小-最大和问题(错误),java,Java,给定五个正整数,找出可以通过将五个整数中的四个整数求和来计算的最小值和最大值。然后将各自的最小值和最大值打印为一行两个空格分隔的长整数 static void miniMaxSum(int[] arr) { int summin=0; int summax=0; for (int i=0; i< 5; i++) { for (int j=4; j>i; j--) { if(arr[i]>arr[j]){
static void miniMaxSum(int[] arr) {
int summin=0;
int summax=0;
for (int i=0; i< 5; i++) {
for (int j=4; j>i; j--) {
if(arr[i]>arr[j]){
int c=arr[i];
arr[i]=arr[j];
arr[j]=c;
}
}
}
for (int i=0; i<4; i++) {
summin=summin+arr[i];
}
for (int i=1; i<5; i++) {
summax=summax+arr[i];
}
System.out.print(summin+" "+summax);
}
static void miniMaxSum(int[]arr){
int summin=0;
int summax=0;
对于(int i=0;i<5;i++){
对于(int j=4;j>i;j--){
if(arr[i]>arr[j]){
int c=arr[i];
arr[i]=arr[j];
arr[j]=c;
}
}
}
对于(int i=0;i我想你应该使用long as summin和summax,这将解决你的问题(你有负值,因为你的sum max大于max integer value)你超出了整数的范围,值溢出到了负值。如果你想用大的数字进行测试,请使用long数据类型
Int数据类型范围:
-2147483648到2147483647 int数据类型是32位有符号Java基元数据类型。int数据类型的变量取32
内存位。其有效范围为-2147483648到2147483647
(-231至231–1)
但是当添加第5个元素时,总和变为负整数,你可以搜索溢出是什么。说明甚至告诉你使用long。这回答了你的问题吗?非常感谢!