CCF201512-1 数位之和(100分)

试题编号: 201512-1
试题名称: 数位之和
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
  给定一个十进制整数n,输出n的各位数字之和。
输入格式
  输入一个整数n。
输出格式
  输出一个整数,表示答案。
样例输入
20151220
样例输出
13
样例说明
  20151220的各位数字之和为2+0+1+5+1+2+2+0=13。
评测用例规模与约定
  所有评测用例满足:0 ≤ n ≤ 1000000000。

问题链接:CCF201512赛题

问题描述:给定一个十进制整数n,输出n的各位数字之和。

问题分析:如果懂得atoi()和itoa()是如何实现的,做这个题就太容易了。这个问题的关键是如何将一个整数的各个位取出来。一个数的10的余数是个位,利用这个原理,就可以将整数的各个位取出并求和。

程序说明这里写了C语言和C++语言两个版本的程序。


提交后得100分的C语言程序如下:

/* CCF200512-1 数位之和 */

#include <stdio.h>

int main(void)
{
    int n, sum=0;

    // 输入整数
    scanf("%d", &n);

    // 求数位之和
    while(n) {
        sum += n % 10;
        n /= 10;
    }

    // 输出结果
    printf("%d
", sum);

    return 0;
}


提交后得100分的C++语言程序如下:

/* CCF200512-1 数位之和 */

#include <iostream>

using namespace std;

int main()
{
    int n, sum=0;

    // 输入整数
    cin >> n;

    // 求数位之和
    while(n) {
        sum += n % 10;
        n /= 10;
    }

    // 输出结果
    cout << sum << endl;

    return 0;
}


原文地址:https://www.cnblogs.com/tigerisland/p/7564234.html