그래서이 문제를 해결해야합니다. R1, R2, R3 및 R4는 정수 값의 저항을 가지고 있다고 가정합니다. 4 개의 값을 입력 한 후 프로그램은 결과를 다음 정수로 산술적으로 반올림하여 출력해야합니다. 이 연습에서는 내장 정수 나누기가 모든 피연산자에 대해 0으로 반올림한다고 가정 할 수 있습니다. 부동 소수점 산술을 사용할 수 없습니다. 대용량 라이브러리로 변경하는 것은 불가능합니다.C++에서 반올림없이 반올림
는이 내 코드입니다 :
int R1;
int R2;
int R3;
int R4;
std::cin >> R1;
std::cin >> R2;
std::cin >> R3;
std::cin >> R4;
int R12 = R1 + R2;
int R34 = R3 + R4;
unsigned int Rtot = ((2*(R12 * R34)/(R12 + R34) + 1))/2 ;
std::cout << Rtot ;
return 0;
하지만 난 큰 숫자 (8000 24000 16000 32000)를 사용하는 경우 나 오버 플로우 문제를 얻을. 어떤 아이디어? 서명하지 않아도 작동하지 않습니다. 모듈러스로 해결할 것으로 추측되지만 어떻게 될지는 모릅니다.
[둘러보기] (https://stackoverflow.com/tour)를 읽고 [도움말 페이지] (https : //stackoverflow.com/help). 에 오신 것을 환영합니다. – Ron
웹에서 "C++ integer division"을 검색하십시오. 예 :'1/3 == 0'. 부동 소수점'1.0/3.0 = .3333333333333333333333333333333' –
@ThomasMatthews OP가 그 상태였습니다. 인용구 : "부동 소수점 산술을 사용할 수 없습니다." –