求 2^1000 的数字之和
使用函数,用户输入基数和指数,例如 4^5(基数 4,指数 5)。
如果比较向量中输出的值和数字,则从第 16 位开始失败。
我的尝试:
#include<iostream>
#include<cmath>
#include<vector>
using namespace std;
double Integer() {
double m,o;
double n;
cout<<"Enter Base: ";
cin>>m;
cout<<"Enter Exponent: ";
cin>>o;
n= pow(m,o);
cout.precision(302);
cout << "The Answer is: " << n << endl;
return n;
}
void SumoftheDigits(double n) {
double x, q, w=0, r, d;
int length = r = (log(n)/ log(10)) + 1;
vector<double> v1;
modf((n/pow(10,r)),&x);
while (r != 0) {
q = modf( (n/pow(10,r-1)), &x);
n -= x*pow(10,r-1);
r--;
d = x;
v1.push_back(d);
}
for(vector<double>::iterator it = v1.begin(); it != v1.end(); ++it){
cout << *it << " ";
}
cout << endl;
int i;
long long int Sum = 0;
while (i != v1.size()) {
Sum += v1[i];
i++;
}
cout << "The Sum of the Digits is: " << Sum << endl;
}
int main() {
double n = Integer();
SumoftheDigits(n);
return 0;
}