D 满足条件的数的累加

题目描述
现有n个整数,将其中个位数为k的数进行累加求和。
输入格式
第一行两个整数n、k,以空格分隔。( 0 < n < 1000, 0 ≤ k ≤ 9) 第二行n个非负整数,以空格分隔,每个数不大于100000。
输出格式
输出满足题目要求的累加和。
样例
样例输入
10 7
2 5 7 17 11 18 4 27 1 7
样例输出
58

参考如下代码:

#include <iostream>
using namespace std;
int main()
{
    int n, k, sum=0, i;
    cin >>n>>k;
    for(i=0;i<n;i++){
        int a;
        cin >> a;
        if(a%10==k)
            sum += a;
    }
    cout << sum;
    return 0;
}

img


int getSignalNum(int num,int signalnum)
{
    int startNum=num;  //记录初始值  num的值取余会被更改
    int sub=0;
    while(num)
    {
        sub=num%10;
        num/=10;
        break;
    }
    if(sub==signalnum)
    {
        return startNum;
    }
    else
    {
        return 0;
    }

}


int main()
{
    int numCount,num,k;
    vector<int> res;
    cout<<"please input numberCount And SignalNum:";
    cin>>numCount>>k;
    cout<<"please input number:";
    for(int i=0;i<numCount;++i)
    {
        cin>>num;
        res.push_back(num);
    }
    int Count=0;
    for(int i=0;i<res.size();++i)
    {
        Count+=getSignalNum(res[i],k);
    }
    cout<<"Count = "<<Count<<endl;
    return 0;

}

结果:

img

求余10,结果为7的数累加

#include  <iostream>
using namespace std;
int main()
{
    int i,n,m,k,sum=0;
    cin>>n>>m;
    for(i=0;i<n;i++)
    {
        cin>>k;
        if(k%10 == m)
            sum += k;
    }
    cout<<sum;
    return 0;
}