programing

음수를 양수로 하다

prostudy 2022. 5. 29. 09:18
반응형

음수를 양수로 하다

자바 방식으로는 일련의 숫자를 합산하는 방법이 있습니다.다만, 음수가 있으면 양수로 취급해 주었으면 합니다.따라서 (1)+(2)+(1)+(-1)은 5가 되어야 합니다.

나는 이것을 하는 매우 쉬운 방법이 있다고 확신한다 - 나는 단지 방법을 모를 뿐이다.

그냥 Math.abs한테 전화해.예를 들어 다음과 같습니다.

int x = Math.abs(-5);

「」가 설정됩니다.x로로 합니다.5.

시 : [ ]에 해 주세요.Integer.MIN_VALUE인 채로는 「(음수인 경우)」입니다.int는 양의 등가물을 나타낼 수 없습니다.

당신이 설명하는 개념은 "절대값"이라고 불리며, Java에는 Math.abs라는 함수가 있습니다.또는 함수 호출을 피하고 직접 수행할 수도 있습니다.

number = (number < 0 ? -number : number);

또는

if (number < 0)
    number = -number;

넌넌 、 치치를를친친Math.abs(-5)5월 5일부러...

하다를 사용하세요.abs★★★★

int sum=0;
for(Integer i : container)
  sum+=Math.abs(i);

다음을 시도해 보십시오(x 앞에 있는 음수는 단항 연산자이므로 유효합니다. 자세한 내용은 여기를 참조하십시오).

int answer = -x;

이것으로, 여러분은 긍정적인 것을 부정적인 것으로 바꿀 수 있고 부정적인 것을 긍정적인 것으로 바꿀 수 있습니다.


, 음수만을 양수로 하는 경우는, 다음과 같이 실시합니다.

int answer = Math.abs(x);

멋진 수학 트릭!숫자를 제곱하면 x^2의 양의 값이 보장되고 제곱근을 구하면 x의 절대값이 됩니다.

int answer = Math.sqrt(Math.pow(x, 2));

도움이 됐으면 좋겠다!행운을 빕니다.

이 코드는 양수로 호출하기에는 안전하지 않습니다.

int x = -20
int y = x + (2*(-1*x));
// Therefore y = -20 + (40) = 20

절대치에 대해 물어보는 건가요?

Math.abs(...)는 당신이 원하는 함수입니다.

숫자 를 '따로 하다'로 묶어서 쓰려고 합니다.Math.abs()가르침

System.out.println(Math.abs(-1));

「1」을 출력합니다.

를 것을 Math. staticpart, Math util을 할 수 . 쓰세요.

import static java.lang.Math.abs;

Imports를 하십시오.abs()·만으로 .

System.out.println(abs(-1));

가장 간단한 방법은 각 번호를 Math.abs() 호출로 랩하는 것입니다.따라서 다음과 같이 추가합니다.

Math.abs(1) + Math.abs(2) + Math.abs(1) + Math.abs(-1)

코드 구조를 반영하기 위해 로직 변경을 가합니다.장황하게 말할 수도 있지만, 원하는 대로 할 수 있어요.

손실 또는 부재(음수 값) 개념이 없는 값을 나타내야 하는 경우 이를 "절대 값"이라고 합니다.


즉, 절대값을 구하는 논리는 매우 간단합니다."If it's positive, maintain it. If it's negative, negate it".


즉, 로직과 코드는 다음과 같이 동작합니다.

//If value is negative...
if ( value < 0 ) {
  //...negate it (make it a negative negative-value, thus a positive value).
  value = negate(value);
}

값을 부정하는 방법에는 다음 2가지가 있습니다.

  1. :value = (-value);
  2. "- "-1"은 "-1"이 .value = value * (-1);

사실 둘 다 같은 동전의 양면이다.value = (-value);는 ★★★★value = 1 * (-value);.


이미 입니다.자바어Math classvalue = Math.abs(value);

아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 없이.Math.abs()아주 간단한 수학의 코드일 뿐인데, 왜 당신의 코드를 추하게 만드나요?하는 Java를 하십시오.Math.abs() 가 있어!!!은!!!!!!!!

이는, 「 」를 할 수 있습니다.value = (value < 0) ? (-value) : value;로직 (3번째) 섹션에서 설명한 코드 중 Ternary 연산자()? :를 사용하여 더 콤팩트한 버전을 제공합니다.


또한 양의 값과 음의 값을 모두 받을 수 있는 함수 내에서 항상 손실 또는 부재를 나타내려는 상황이 발생할 수 있습니다.

체크를 않고하면 됩니다.negativeValue = (-Math.abs(value));


이러한 점을 염두에 두고, 고객님의 경우와 같이 여러 개의 숫자를 합한 경우를 고려하면, 다음과 같은 함수를 구현하는 것이 좋습니다.

int getSumOfAllAbsolutes(int[] values){
  int total = 0;
  for(int i=0; i<values.lenght; i++){
    total += Math.abs(values[i]);
  }
  return total;
}

관련 코드가 다시 필요할 가능성에 따라서는 자신의 "유틸리티" 라이브러리에 코드를 추가하여 이러한 함수를 먼저 코어 컴포넌트로 분할하고 최종 함수를 단순히 코어 컴포넌트의 현재 분할된 함수에 대한 호출의 둥지로 유지하는 것도 좋은 방법입니다.

int[] makeAllAbsolute(int[] values){
  //@TIP: You can also make a reference-based version of this function, so that allocating 'absolutes[]' is not needed, thus optimizing.
  int[] absolutes = values.clone();
  for(int i=0; i<values.lenght; i++){
    absolutes[i] = Math.abs(values[i]);
  }
  return absolutes;
}

int getSumOfAllValues(int[] values){
  int total = 0;
  for(int i=0; i<values.lenght; i++){
    total += values[i];
  }
return total;
}

int getSumOfAllAbsolutes(int[] values){
  return getSumOfAllValues(makeAllAbsolute(values));
}

왜 안 해?

다음과 같은 경우:

//Given x as the number, if x is less than 0, return 0 - x, otherwise return x:
return (x <= 0.0F) ? 0.0F - x : x;

2의 보수의 역학에 관심이 있는 경우, 전혀 비효율적이지만 낮은 수준의 방법을 설명합니다.

private static int makeAbsolute(int number){
     if(number >=0){
        return number;
     } else{
        return (~number)+1;
     }
}

기능Math.abs()사용할 수 있습니다.
Math.abs()합니다.

  • 인수가 음수이면 인수의 부정을 반환합니다.
  • 인수가 양수인 경우 숫자를 그대로 반환합니다.

예:

  1. int x=-5;
    System.out.println(Math.abs(x));

출력: 5

  1. int y=6;
    System.out.println(Math.abs(y));

출력: 6

String s = "-1139627840";
BigInteger bg1 = new BigInteger(s);
System.out.println(bg1.abs());

대체 방법:

int i = -123;
System.out.println(Math.abs(i));

음수를 양수로 변환하려면(절대값이라고 부릅니다) Math.abs()를 사용합니다.이 Math.abs() 메서드는 다음과 같이 동작합니다.

“number = (number < 0 ? -number : number);".

예제에서는 음음 in in in 。Math.abs(-1)1번으로 하다

public static void main(String[] args) {

    int total = 1 + 1 + 1 + 1 + (-1);
    
    //output 3
    System.out.println("Total : " + total);
    
    int total2 = 1 + 1 + 1 + 1 + Math.abs(-1);
    
    //output 5
    System.out.println("Total 2 (absolute value) : " + total2);
    
}

산출량

합계: 3 합계2 (절대값) : 5

다음과 같은 솔루션을 권장합니다.

lib fun 없음:

    value = (value*value)/value

(상기는 실제로는 동작하지 않습니다).

lib fun을 사용하여:

   value = Math.abs(value);

나는 long의 절대값이 필요했고, Math.abs를 자세히 조사했고, 내 주장이 long보다 작다면 그것을 발견했다.MIN_VAL(-9223372036854775808l)은 절대값이 아닌 최소값만 반환합니다.이 경우 코드가 이 abs 값을 더 사용하고 있다면 문제가 있을 수 있습니다.

이거 한번 입어볼래요?

public static int toPositive(int number) {
    return number & 0x7fffffff;
}
if(arr[i]<0)

Math.abs(arr[i]);  //1st way (taking absolute value)

arr[i]=-(arr[i]); //2nd way (taking -ve of -ve no. yields a +ve no.)

arr[i]= ~(arr[i]-1);   //3rd way (taking negation)

그런 말을 많이 하시네요.Math.abs(number)하지만 이 방법이 완벽한 증거는 아닙니다.

랩을 시도하면 실패합니다.Math.abs(Integer.MIN_VALUE)(참조 참조).https://youtu.be/IWrpDP-ad7g)

수신할 수 있을지 어떨지 확실하지 않은 경우Integer.MIN_VALUE입력에 입력됩니다.항상 이 번호를 확인하고 수동으로 처리하는 것이 좋습니다.

kotlin에서는 unary Plus를 사용할 수 있습니다.

input = input.unaryPlus()

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/unary-plus.html

for 루프에서 다음을 시도합니다.

sum += Math.abs(arr[i])

이거 하지 마

number = (number < 0 ? - number : number );

또는

if (number < 0) number = -number;

코드상에서 find bug를 실행하면 RV_NEGATING_RESULT_OF로 보고되는 버그가 됩니다.

언급URL : https://stackoverflow.com/questions/493494/make-a-negative-number-positive

반응형