Problem
215 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.
What is the sum of the digits of the number 21000?
Code
#include <iostream>
#include <vector>
using namespace std;
const unsigned int count = 125;
const unsigned int pos = 8;
int main()
{
vector<unsigned int> vec(count,0);
vec[0] = 1;
vec[0] <<= pos;
bool flag = false;
unsigned int sum = 0;
while (!flag)
{
unsigned int shang;
unsigned int yu;
for (int i = 0; i != vec.size(); i++)
{
shang = vec[i]/10;//商
yu = vec[i]%10;//余
if (i != vec.size() -1)
{
unsigned int temp = vec[i+1];
vec[i+1] = yu;
vec[i+1] <<= pos;
vec[i+1] += temp;
}
vec[i] = shang;
}
//cout << yu << endl;
sum += yu;
flag = true;
for (int i = 0; i != vec.size(); i++)
{
if (vec[i] != 0)
{
flag = false;
}
}
}
cout << sum << endl;
}