Project Euler Problem 16 Power digit sum

来源:互联网 发布:挖矿软件是什么 编辑:程序博客网 时间:2024/05/17 09:10

Power digit sum

Problem 16

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?


C++:

#include <iostream>#include <cstring>using namespace std;const int MAXN = 1000;int result[MAXN+1];int power(int a, int n){    int digits, j;    memset(result, 0, sizeof(result));    result[0] = a;    digits = 1;    for(int i=2; i<=n; i++) {        int carry = 0;        for(j=0; j<digits; j++)            result[j] *= a;        for(j=0; j<=digits; j++) {            result[j] += carry;            carry = result[j] / 10;            result[j] %= 10;        }        digits = j;    }    return digits;}int main(){    int n, digits;    while(cin >> n) {        digits = power(2, n);        int sum = 0;        for(int i=0; i<=digits; i++)            sum += result[i];        cout << sum << endl;    }    return 0;}





1 0
原创粉丝点击