c++高精度除法

什么是高精度?高精度又怎么用?这种问题进场存在于我这个蒟蒻的心里,直到学了高精度。

高精度的原理是通过字符串来实现比longlong还大的数据的运算。基本就是按照我们手动运算的逻辑来写,话不多说,题目奉上:

问题描述

计算A/B的精确值,设 A,B 是以一般整数输入,计算结果精确到小数后 20位

输入数据 1

4 3

输出数据 1

4/3=1.33333333333333333333

输入数据 2

6 5

输出数据 2

6/5=1.2

输入数据 3

60 5

输出数据 3

60/5=12.0

话不多说,代码奉上:

#include <iostream>
#include <string>

using namespace std;

string divide(int A, int B) {
    string result;
    int quotient = A / B;  
    int remainder = A % B; 
    
    result += to_string(quotient) + '.';  
    
    int decimal_places = 0;  
    
    while (decimal_places < 20) {
        remainder *= 10;  
        quotient = remainder / B;  
        result += to_string(quotient);  
        remainder = remainder % B;  
        decimal_places += 1;
    }
    
    return result;
}

int main() {
    int A, B;
    cin >> A >> B; \

    string result = divide(A, B);  
    cout << A << '/' << B << '=' << result << endl; \
    return 0;
}

 是不是有那么亿点点简单,难题就是要多练。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 方位角和俯仰角是通过查表法计算空中任意两点的角度的。 首先,我们需要定义一个表格,将所有可能的方位角和俯仰角组合存储起来。假设我们以1度为步长,方位角从0度到359度,俯仰角从-90度到90度,我们需要一个数组来存储这些角度。 接下来,在FPGA代码中,我们可以引入输入信号,包括两个点的坐标(经度和纬度)。我们可以通过坐标转换运算得到两个点的方位角和俯仰角。 然后,在代码中,我们可以使用查找表法来计算方位角和俯仰角,即根据输入的方位角和俯仰角的值,从表格中索引对应的数值,并将其作为输出信号。 最后,我们可以将计算得到的方位角和俯仰角输出到相应的目标设备,例如显示屏、控制系统等。 使用查表法计算空中任意两点的方位角和俯仰角的FPGA代码可以提供实时的角度计算,并且具有速、精确和可调节的特点。这种方法可以应用于航空导航、雷达系统、地图服务等领域。 ### 回答2: 方位角和俯仰角是用来描述空中两点之间的位置关系的指标。方位角是指一个点相对于参考方向的旋转角度,一般以北方为参照,逆时针方向为正。俯仰角是指一个点相对于参考平面的偏转角度,一般以水平面为参照,上升方向为正。 在计算空中任意两点的方位角和俯仰角时,可以使用查表法,将已知的点的方位角和俯仰角的数值存储在一个查找表中,根据给定的点在查找表中查找对应的数值即可得到结果。 以下是一个简单的使用FPGA编写的查表法计算空中任意两点的方位角和俯仰角的代码示例: ''' module Lookup_Table ( input wire [7:0] point_A, // 点A在查找表中的索引 input wire [7:0] point_B, // 点B在查找表中的索引 output reg [7:0] azimuth_angle, // 方位角 output reg [7:0] elevation_angle // 俯仰角 ); reg [7:0] lookup_table [255:0]; // 查找表,存储方位角和俯仰角数值 initial begin // 初始化查找表 // 将点A和点B的方位角和俯仰角数值存储在查找表中 // 注意查找表的索引需要和点A和点B相对应 lookup_table[0] = 0; // 点A的方位角 lookup_table[1] = 45; // 点A的俯仰角 lookup_table[2] = 90; // 点B的方位角 lookup_table[3] = 60; // 点B的俯仰角 // 其他数据省略... // 根据输入的点A和点B的索引值,在查找表中查找对应的方位角和俯仰角数值 azimuth_angle <= lookup_table[point_A]; elevation_angle <= lookup_table[point_B]; end endmodule ''' 以上是一个简单的FPGA代码示例,使用查表法计算空中任意两点的方位角和俯仰角。其中,查找表的初始化部分需要根据实际需求来编写,将每个点的方位角和俯仰角数值存储在查找表中。在计算时,通过输入的点A和点B的索引值,从查找表中查找对应的方位角和俯仰角数值,并输出给相应的输出端口。 ### 回答3: 方位角和俯仰角是描述空中两点位置关系的角度,可以使用三角函数计算。FPGA代码实现查表法计算空中任意两点求方位角俯仰角的步骤如下: 1. 创建一个包含预先计算好方位角和俯仰角的查找表。这个查找表可以是一个二维数组,其中每个元素存储某个方位角和俯仰角对应的数值。 2. 输入两点的空间坐标,将坐标转换为极坐标形式。通过使用三角函数,可以计算出两点之间的水平距离和度差。 3. 使用计算得到的水平距离和度差,从查找表中找到相应的方位角和俯仰角。 4. 输出得到的方位角和俯仰角。 具体的FPGA代码可以按照以下步骤进行编写: 1. 定义并初始化查找表,填充其中的方位角和俯仰角数值。 2. 从输入端口获取两点的空间坐标。 3. 将坐标转换为极坐标形式,计算水平距离和度差。 4. 使用水平距离和度差,在查找表中查找对应的方位角和俯仰角。 5. 将方位角和俯仰角输出到输出端口。 需要注意的是,查表法计算空中任意两点求方位角和俯仰角的精度受限于查找表的分辨率。为了提计算精度,可以增加查找表的尺寸或者使用插值算法。对于更精度的计算,可以考虑使用更复杂的算法,如三角函数的数值逼近或迭代求解等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值