使用c++计算22023与32023的和
思路
1、使用字符串来存储两个数
2、自定义函数addStrings用于将两个字符串表示的数字相加,实现了大整数相加的功能。它通过遍历两个字符串的每一位,将对应位置的数字相加,并考虑进位。最后将结果转换为字符串返回。
3、函数powToString用于计算一个数字的幂并将结果转换为字符串。它使用了addStrings函数来实现幂的计算。通过循环调用addStrings函数,将结果与自身相加2023次,最后得到幂的结果。
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
string addStrings(string num1,string num2)//用于将两个字符串表示的数字相加 ,实现大整数相加的功能
{
string result = ""; //用空字符串存储最终结果
int c = 0; //表示进位值
int i = num1.length() - 1;//表示num1的索引位置
int j = num2.length() - 1;
while(i >= 0||j >= 0||c > 0)
{
int digit1 = i >= 0 ? num1[i] - '0': 0; //将字符串转化为整数
int digit2 = j >= 0 ? num2[j] - '0': 0;
int sum = digit1 + digit2 + c;
c = sum / 10;
result = to_string(sum % 10) + result;//用临时的和对10求余 ,得到当前位置的结果值
i--;
j--;
}
return result;
}
string powToString(int b,int e)//b代表底数,e代表指数,函数用来执行字符串相加
{
string result = "1";
for(int i = 0;i < e;i++)
{
result = addStrings(result,result);//调用add函数,将结果 与自身相加e次,最后得到幂的结果
}
return result;
}
int main()
{
string num1 = powToString(2,2023);//调用pow函数计算的结果,将结果存储在num1和num2中
string num2 = powToString(3,2023);
string sum = addStrings(num1,num2);
cout<<"2^2023+3^2023="<<sum<<endl;
return 0;
}
结果
![]()