您现在的位置是:主页 > news > 郫县网站建设/男生技能培训班有哪些
郫县网站建设/男生技能培训班有哪些
admin2025/6/5 4:44:40【news】
简介郫县网站建设,男生技能培训班有哪些,做网站后都需要什么,java 做直播网站有哪些在C/C中用int,float,double等类型表示数字,但是它们长度都是有限的。如果要求数字是任意长度,则可以用字符串表示数字,同样也用字符串表示结果。 代码如下: #include <iostream> #include <cstring> #include <cs…
郫县网站建设,男生技能培训班有哪些,做网站后都需要什么,java 做直播网站有哪些在C/C中用int,float,double等类型表示数字,但是它们长度都是有限的。如果要求数字是任意长度,则可以用字符串表示数字,同样也用字符串表示结果。
代码如下: #include <iostream>
#include <cstring>
#include <cs…
在C/C++中用int,float,double等类型表示数字,但是它们长度都是有限的。如果要求数字是任意长度,则可以用字符串表示数字,同样也用字符串表示结果。
代码如下:
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cmath>
using namespace std;char *addBigInt(char *num1,char *num2)
{int c=0;//进位,开始最低进位为0;int len1=strlen(num1);int len2=strlen(num2);int i=len1-1;//指向第一个加数的最低位int j=len2-1;//指向第二个加数的最低位int maxLength= (len1>=len2) ? (len1+1) : (len2+1); //得到两个数中较大数的位数char *rst=(char*)malloc(maxLength+1);//保存结果int k;if(rst==NULL){cout<<"malloc error\n"<<endl;return NULL;}rst[maxLength]='\0';//字符串最后一位为‘\0’k=strlen(rst)-1;//指向结果数组的最低位while(i>=0 && j>=0){rst[k]=((num1[i]-'0')+(num2[j]-'0')+c)%10+'0';//计算本位值c=((num1[i]-'0')+(num2[j]-'0')+c)/10;//向高位进位值--i; --j;--k;}while(i>=0){rst[k]=((num1[i]-'0')+c)%10+'0';c=((num1[i]-'0')+c)/10;--i;--k;}while(j>=0){rst[k]=((num2[j]-'0')+c)%10+'0';c=((num2[j]-'0')+c)/10;--j;--k;}rst[0]=c+'0';//如果结果最高位不等于0,则输出结果if(rst[0]!='0'){return rst;}else{return rst+1;}
}
int main()
{
char num1[]="123456789456";
char num2[]="45671254563123";
char *result=NULL;result=addBigInt(num1,num2);
cout<<num1<<" + "<<num2<<" = "<<result<<endl;return 0;
}
上述程序的运行结果如下图: