吉大考研真题-各位数字之和

吉林大学计算机/软件考研考过很多次的题目。求各位数字之和的题目。

下面给到3个代码:


第一个代码,是最基本的思路,将每位数存到数字中,遍历累加数组就是各位数字之和。

第二个代码,是第一个的改进,不存入数组,直接累加到sum中。

第三个代码,因为前面两个代码都是用int存n,位数很低,最多也就几位数。所以这里用字符串数组做的,这个能运行的位数比较多。但题目如果没有位数要求,推荐第二种。

#include <iostream>
using namespace std;

void main()
{
    long n;
    int i = 0;
    int sum = 0;
    cin >> n;
    int a[10000] = {0};
    while (n != 0) //把每一位存入数组
    {
        a[i++] = n % 10; //每次取末位 存入a[]后 i++
        n = n / 10; //除10降一位
    }
    for (int j = 0; j < i; j++) //输出数组之和
    {
        sum += a[j];
    }
    cout << sum << endl;
}
#include <iostream>
using namespace std;
void main()
{
    int n, sum = 0;
    cin >> n;
    while (n)
    {
        sum += n % 10;
        n /= 10;
    }
    cout << sum << endl;
}
#include <iostream>
using namespace std;
void main()
{
    char array[100];
    int sum = 0;
    cin >> array;
    for (int i = 0; array[i]; i++)
    {
        sum += (array[i] - '0');
    }
    cout << sum;
}

PS:代码三,字符串数组,这里用asiii码减法,例如 ‘9’-‘0’=9(不太明白的话,可以转int再减也是OK的)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值