You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于整数类型的C++等效电阻计算问题及优化需求

问题描述

需要计算特定电路的等效电阻Req,输入参数R1、R2、R3、R4均为int类型,要求输出取整后的int类型结果。

此前采用double类型结合ceil函数实现了需求,但希望仅用整数类型完成计算:一方面int类型无法直接使用ceil函数,另一方面直接用int进行等效电阻的分式运算时,极易因数值相乘触发溢出(例如用整数表示毫欧级电阻时,数值会被放大,相乘后超出int的范围)。

原实现代码如下:

#include <iostream>
#include <cmath>

int main(){
  
  double R1, R2, R3, R4;
  
  std::cout << "enter R1: " << std::endl;
  std::cin >> R1; 
  std::cout << "enter R2: " << std::endl;
  std::cin >> R2; 
  std::cout << "enter R3: " << std::endl;
  std::cin >> R3; 
  std::cout << "enter R4: " << std::endl;
  std::cin >> R4; 
  
  double R12;
  R12 = R1 + R2;
  double R34;
  R34 = R3 + R4;
  
  int Req;
  Req = ceil((R12*R34)/(R12+R34));
  
  std::cout << "the equivalent resistance is: " << Req << std::endl;
  
  return 0;
}
纯整数运算解决方案

要实现纯整数运算且避免溢出,可借助**64位整数类型(long long)**存储中间计算值,同时用整数向上取整公式替代ceil函数:

核心思路

  1. 等效电阻公式:Req = ceil( (R12 * R34) / (R12 + R34) ),其中R12 = R1+R2,R34 = R3+R4
  2. 整数向上取整公式:对于正整数a和b,ceil(a/b) = (a + b - 1) / b,将此公式应用到等效电阻计算中,得到:
    Req = (R12*R34 + (R12+R34) - 1) / (R12+R34)
  3. 用long long存储R12、R34及后续乘积、和值,避免32位int的溢出问题。

实现代码

#include <iostream>

int main(){
    int R1, R2, R3, R4;
    
    std::cout << "输入R1: " << std::endl;
    std::cin >> R1;
    std::cout << "输入R2: " << std::endl;
    std::cin >> R2;
    std::cout << "输入R3: " << std::endl;
    std::cin >> R3;
    std::cout << "输入R4: " << std::endl;
    std::cin >> R4;
    
    // 用long long存储中间值,避免溢出
    long long R12 = static_cast<long long>(R1) + R2;
    long long R34 = static_cast<long long>(R3) + R4;
    long long numerator = R12 * R34;
    long long denominator = R12 + R34;
    
    // 整数向上取整计算
    int Req = static_cast<int>( (numerator + denominator - 1) / denominator );
    
    std::cout << "等效电阻为: " << Req << std::endl;
    
    return 0;
}

说明

  • 用long long作为中间计算类型:即使输入的电阻值(以毫欧为单位的整数)很大,long long的64位存储空间也能容纳乘积结果,避免溢出。
  • 整数向上取整公式:完全通过整数运算实现了ceil的效果,无需依赖浮点类型和cmath库。
  • 输入输出均保持int类型,符合需求。

内容的提问来源于stack exchange,提问作者Emilio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 07:40:27