首页 > 其他分享 >每天打卡一小时 第二十天 承接十九天

每天打卡一小时 第二十天 承接十九天

时间:2023-05-06 22:45:09浏览次数:38  
标签:BigNum 大数 十天 符号 十九天 num 被减数 打卡 减数

这段代码实现了两个大数相加的功能,其中BigNum是一个自定义的大数类,它的数据成员num是一个字符数组,用于存储大数。下面是对代码的解释:

1.首先判断两个大数的符号,如果一个为正数,另一个为负数,则通过转换为减法的方式实现加法。

2.定义一个新的BigNum对象s,用于存储相加后的结果;另外定义一个字符数组s2,用于存储被加数num的副本a.num。

3.获取num和a.num的长度,将长度较短的一方在末尾补零,使它们的长度一致。

4.根据两个大数的符号来判断相加的结果的符号,并从1开始遍历两个大数的每一位。将每一位的数值相加,如果和大于等于10,则将进位的1加到后一位,并将相加的结果减去10;否则直接将相加的结果存入结果BigNum对象s的对应位。

5.将BigNum对象s的num最后一位赋为'\0',并根据两个大数的符号来确定BigNum对象s的符号。

6.将结果BigNum对象s返回。

 

这段代码实现了两个大数相减的功能,其中BigNum是一个自定义的大数类,它的数据成员num是一个字符数组,用于存储大数。下面是对代码的解释:

1.首先判断被减数和减数的符号,如果一个为正数,另一个为负数,则通过转换为加法的方式实现减法。

2.定义一个新的BigNum对象s,用于存储相减后的结果;另外定义一个字符数组s2,用于存储减数b.num的副本。

3.获取被减数num和减数b.num的长度,将长度较短的一方在末尾补零,使它们的长度一致。

4.根据被减数num和减数b.num的符号来判断相减的结果的符号,并从最高位开始遍历两个大数的每一位,将减数b.num的每一位从被减数num的相应位上减去,若被减数的这一位不够减,则向高位借位,否则直接将被减数的这一位减去减数的这一位,并将相减的结果存入结果BigNum对象s的对应位。

5.将BigNum对象s的num最后一位赋为'\0',并根据两个大数的符号来确定BigNum对象s的符号。

6.将结果BigNum对象s返回。

 

标签:BigNum,大数,十天,符号,十九天,num,被减数,打卡,减数
From: https://www.cnblogs.com/youxiandechilun/p/17378622.html

相关文章

  • k01_idea解决超过三十天无法登录问题
    idea过期问题当IDEA过期了无法进入程序的时候我们大可不必卸载重新安装只需要删除指定文件即可!1、寻找目录如:C:\Users\zhangsan(您的主机目录)\AppData\Roaming\JetBrains\IntelliJIdea2020.1\eval2、删除文件删除指定的那个文件即可!对于不同的idea版本号会不同!根据实际情况删......
  • 每日打卡
    完数问题:问题描述:一个等于因子之和的数称为完数,求一定范围内完数的数量代码:#include<stdio.h> intmain() {       inti,j,s,n;       printf("请选择输入上限:");       scanf("%d",&n);              for(i=2;i<=n;i++)  ......
  • 5.6打卡
    一、问题描述:一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少种可能的颜色搭配?二、设计思路:根据问题描述可设任取的8个球中红球为m个,白球为n个,则黑球为8-m-n个。又已知12个球中有3个红球,3个白球,6个黑球,因此,m的取值范围为[0,3],n的取值范围因此为[......
  • 2023.5.6编程一小时打卡
    一、问题描述:键盘输入“Iamastudent./MyuniversityisSTDU./Ilovemyuniversity.”用流对象的成员函数get读取并打印到屏幕上;分别用流对象的成员函数get函数和getline函数读取第一个“/”之前的字符串,之后观察当前指针所指内容,观察是否有差别,若有,请在实验报告中描述;......
  • 5-5打卡
    '''typedefstructlist{intdata;list*next;}list;list*initlist(){list*a=newlist;a->data=0;a->next=NULL;returna;}voidpushback(list**h,intn){list*a=newlist;a->data=n;a->next=NULL;list*p=*......
  • c++打卡第十九天
    一、问题描述 二、设计思路。①、定义总鱼数为x条,这个x我们需要使用double类型定义,②、第一次剩余x1=x-(x/2+1/2);第二次剩余x2=x1-(x1/3+1/3)第三次剩余x3=x2-(x2/4+1/4)第四次剩余x4=x3-(x3/5+1/5)x4=11;③、我们可以使用循环实现此方程。即x-(x/j+1/j);③、使用数组存储每次卖鱼......
  • 打卡8
    #include<iostream>usingnamespacestd;intmain(){ for(inti=1;i<=9;i++) { for(intj=1;j<=i;j++) { cout<<i<<"*"<<j<<"="<<i*j<<""; } cout<<endl; } system("pau......
  • 每天打卡一小时 第十九天 编译四部曲
    第一部曲自然语言 先将大数类的框架写好,再定义其中的函数分别写出每一个函数,通过分步骤的方法解决问题 有参构造函数首先声明函数时,默认参数定义根据数值的正负进行选择 然后进行循环将数字进行输入拷贝构造函数循环进行赋值操作公有函数成员选择正负符号循环赋......
  • 第14天打卡
    问题: 源代码:#include<iostream>using namespace std;int main(){for(int i=95859+1;i<100000;i++){int a=i/10000,b=i/1000%10,c=i/10%10,d=i%10;if(a==d&&b==c){cout<<i;break;}}} ......
  • 每周打卡 第二(?)周 5
       #include<cstring>#include<cstdio>#include<iostream>#include<algorithm>usingnamespacestd;constintN=30;intm,n;intst[N];boola[N];voidf(intu,intt){if(u>m){for(inti=1;i<=m;i++)......