Chinaunix首页 | 论坛 | 博客
  • 博客访问: 215684
  • 博文数量: 68
  • 博客积分: 3120
  • 博客等级: 中校
  • 技术积分: 715
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-08 09:53
文章分类
文章存档

2012年(29)

2011年(3)

2010年(18)

2009年(18)

我的朋友

分类: C/C++

2012-01-18 20:46:54

问题:

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?

答案:1366


#include
#include

int main(int argc, char *argv[])
{
    int n = 1000; 
    char r[512]={0};
    int sum = 0;

    int i=0, t=0, j=0;
    int flag=0;
    int len=1;

    r[0] = 2;
    for(i=2; i<=n; i++)
    {
        for (j=0; j        {
            if (1 == flag)
                t = 2 * (int)(r[j]) + 1;
            else   
                t = 2 * (int)(r[j]) ;
           
            if (t<10){
                r[j] = t;
                flag = 0;
            }
            else{
                r[j] = t%10;
                flag = 1;
            }
        }

        if (1 == flag)
                t = 2 * (int)(r[len-1]) + 1;
            else   
                t = 2 * (int)(r[len-1]) ;
           
            if (t<10){
                r[len-1] = t;
                flag = 0;
            }
            else{
                r[len-1] = t%10;
                flag = 0;
                r[len] = 1;
                len++;
            }
       
    }

    for (i=0; i        sum += (int)(r[i]);

    printf("The sum is %d\n", sum);
    return 0;
}




阅读(521) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~