aiaiask.com©

开花即结果 提问即答案

计算2的1000000次方和实现C++2的n次方计算器(计算器高精度1000位)
原始问题:

计算2的1000000次方和实现C++2的n次方计算器(计算器高精度1000位)

2的1000000次方 = 2089885901177587888711196581236310208566844588711589647622402195967229906938584174001581400185731508842730024389195354733584000000000000000

实现C++2的n次方计算器(计算器高精度1000位)代码如下:

#include<iostream> 
using namespace std; 
  
// 返回大数乘以小数的结果 
string multiply(string num1, string num2)  {  

    int n1 = num1.size();   // 获取num1的位数 

    int n2 = num2.size();   // 获取num2的位数

    if (n1 == 0 || n2 == 0) return "0";   // 如果有一个乘数为0则返回0

    // 存储乘法计算后的结果字符串

    string result(n1 + n2, '0');    

    int carry = 0;     // 进位标志变量 

       for (int i=n1-1; i>=0; i--) {     // 遍历num1中所有元素,从末尾开始遍历 

        carry = 0;       // 每一步都将carry重新初始化为0     

        for (int j=n2-1; j>=0; j--) {     // 遍历num2中所有元素,从末尾开始遍历                                         // 各位相乘并加上进位carry得到当前result字符对应的值           result[i+j+1] += ((num1[i]-'0')*(num2[j]-'0') + carry) % 10 ;            carry = ((num1[i]-'0')*(num2[j]-'0') + carry) / 10 ;         }         result[i] += carry ;      }      while (result.size() > 1 && result[0] == '0')      result.erase(result.begin());      return result ;}  
计算2的1000000次方和实现C++2的n次方计算器(计算器高精度1000位)
https://www.aiaiask.com/ask/7846.html
AI / 模型iFLYTEK
时间 / DATEApril 10, 2023, 10:40 PM
语言zh-CN
IP / 区域北京市北京市