csp 201512-1 数位之和

一.题目

问题描述

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

输入格式

  输入一个整数n

输出格式

  输出一个整数,表示答案。

样例输入

20151220

样例输出

13

样例说明

  20151220的各位数字之和为2+0+1+5+1+2+2+0=13。

评测用例规模与约定

所有评测用例满足:0 ≤ n ≤ 1000000000。

 

二.基本思路

首先,这题看起来应该是不难的,这个题目的题意其实很简单,就是它输入一个十进制的数,然后对它每个位数的值进行累加,总和的值就是答案了。那么这题就是得用到字符串了,就变的很简单了,最大的值是1000000000,那么也就是最大是10个位,也就是我字符串的数组只要开十几的空间就够了,但为了安全起见,我们还是开大一些,直接就开100就好了,用gets读入之后,用一个for循环去遍历,每个字符都转换为数值,进行累加就是最终的答案。

 

三.算法思想

此题比较简单,没有用到什么算法,所以这步就是略写了。

 

四.流程

1.读入一个字符串

2.初始化一个sum=0

3.for循环遍历字符串

4.对每个字符都进行转换为数值,也就是每个字符都进行-‘0’

5.每个转换为数值之后进行累加

6.输出累加的值

 

五.代码实现

#include<cstdio>

#include<cstring>

#include<algorithm>

using namespace std;

int main(){

    char str[100];

    int sum=0;

    gets(str);

    for(int i=0;str[i];++i){

        sum+=(str[i]-'0');

    }

    printf("%d\n",sum);

    return 0;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值