首页 > 其他分享 >高精度数相加乘一位数

高精度数相加乘一位数

时间:2023-04-27 14:34:00浏览次数:35  
标签:201 高精度 int 相加 一位数 include strlen

【问题描述】

  请编程实现,输入两个高精度数,输出它们的和的n倍。(1<=n<=9),注意: 这两个高精度数的位数不一定相同且有可能产生进位。

【输入输出描述】

  输入:  两行,第一行为高精度数a ,第二行为高精度数b。

  输出:  一行, 一个高精度数c ,表示a与b的和的n倍。

【样例输入】

  1111111222

  1111111223

  2

【样例输出】

  4444444890

#include<iostream>
#include<cstring>
using namespace std;

int main()
{
    char a[201], b[201];
    int a2[201]={}, b2[201]={}, c, c2[202]={}, d2[205]={};
    cin >> a >> b >> c;
    int lena = strlen(a), lenb = strlen(b);
    for(int i=0; i<=lena-1; i++)
        a2[lena-i] = a[i] - 48; // 下标从1开始的。 
    for(int i=0; i<=lenb-1; i++)
        b2[lenb-i] = b[i] - 48; // 下标从1开始的。 
    // 高精度加法
    int maxlen = max(lena, lenb), jw=0, i;
    for(i=1; i<=maxlen; i++)
    {
        int t = a2[i] + b2[i] + jw;
        jw = t/10;
        c2[i] = t%10;
    } 
    if(jw) c2[i] = jw;
    else i--;
    // 高精度*c(c是一位整数); 
    int jw2=0, j;
    for(j=1; j<=i; j++)
    {
        int t = c2[j]*c + jw2;
        jw2 = t/10;
        d2[j] = t%10;
    }
    if(jw2) d2[j]=jw2;
    else j--;
    for(int i=j; i>=1; i--)
        cout << d2[i];
    return 0;
}

 

标签:201,高精度,int,相加,一位数,include,strlen
From: https://www.cnblogs.com/dks0313/p/17358811.html

相关文章

  • 高精度乘一位整数
    求高精度数的n倍【问题描述】定义一个高精度数a,输出a的n(0<=n<=9)倍的值。a的长度不超过200.【输入输出描述】输入:两行,第一行为高精度数a,第二行为倍数n;输出:a的n倍的值【样例输入】122344445556667773【样例输出】36703333667000331#include<iost......
  • 高精度四则及GCD运算(二元均是高精度)
    原代码出处,转自HDAWN,经过部分改写,包装为结构体,常数比较大.测试输出大概实际操作具体支持四则运算及GCD运算,重写了istream和ostream和比较运算符.构造函数既可以longlong,string,也可以char[]如果除法要求余数,a/b=c,a-b*c=res,除了这样绕一......
  • 相同键值某个字段相加
    现有数组:[0=>array:2["week"=>"30""nilai"=>"230"]1=>array:2["week"=>"30""nilai"=>"66"]2=>array:2[&q......
  • 高精度模板 大数减大数 可变数组vector实现
    vector<int>Sub(vector<int>&A,vector<int>&B)//这里默认长数减去短数{vector<int>C;//结果向量intT=0;//上一位借位标志位for(inti=0;i<A.size();i++){T=A[i]-T;if(i<B.size())T-=B[i];//检......
  • 高精度模板 整数大数除以小整数数
    vector<int>Div(vector<int>&A,int&B){vector<int>C;intT=0;//除数for(inti=A.size()-1;i>=0;i--)//注意,除法模拟是从最高位开始的{T=T*10+A[i];//更新除数C.push_back(T/B);T%=B;......
  • c如何输出高精度浮点型数
    环境:cygwin64的gcc (mingw64的gcc不行)intmain(intargc,charconst*argv[]){longdoubleld=1.23L;printf("1%Lf\n",ld);doubled=1.3456789123;printf("2%f\n",d);printf("3%lf\n",d);printf("4%ll......
  • 正的浮点数相加的示例程序 Verilog
    modulefloat_adder( input        clk, input       rst_n, input        en, input   [31:0]  aIn, input   [31:0]  bIn, outputreg     busy, outputreg   out......
  • [oeasy]python0137_相加运算_python之禅_import_this_显式转化
    变量类型相加运算回忆上次内容上次讲了是从键盘输入变量input函数可以有提示字符串需要有具体的变量接收输入的字符串 输入单个变量没有问题但是输入两个变量之后一相加就非常离谱 ​ 添加图片注释,不超过140字(可选)......
  • shell参数的个数用什么变量,怎么表示上一个运行的结果?两个数字相加,用什么
    Shell参数的个数可以使用特定的变量来表示,即$#变量。这个变量表示传递给当前shell脚本或函数的参数个数。例如,如果调用一个shell脚本,并向其传递了3个参数,那么在这个脚本中$#的值将为3。上一个运行的结果可以使用$?变量来表示。这个变量记录上一次命令的返回值(......
  • Java中处理高精度数据计算
    1、为什么要使用高精度计算拿整数举例:在Java中,int和long是两种基本数据类型,而BigInteger是一个对象类型。它们的取值范围如下:-int:32位有符号整数,取值范围为-2^31~2^31-1(即-2147483648~2147483647)。-long:64位有符号整数,取值范围为-2^63~2^63-1(即-9223......