实验2-4-1 统计各位数字之和是5的数 (20 分)
1. 题目摘自
https://pintia.cn/problem-sets/13/problems/411
2. 题目内容
本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。
函数接口定义:
int is( int number );
void count_sum( int a, int b );
函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。
函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式count = 满足条件的整数个数, sum = 这些整数的和
进行输出。题目保证0<a≤b≤10000。
输入样例:
104 999
输出样例:
104 is counted.
count = 15, sum = 3720
3. 源码参考
#include <iostream>
#include <iomanip>
using namespace std;
int is(int number);
void count_sum(int a, int b);
int main()
{
int a, b;
cin >> a >> b;
if (is(a))
{
cout << a << " is counted." << endl;
}
if (is(b))
{
cout << b << " is counted." << endl;
}
count_sum(a, b);
return 0;
}
int is (int number)
{
int n = number;
int s = 0;
do
{
s += n % 10;
n /= 10;
} while (n != 0);
if (s == 5)
{
return 1;
}
return 0;
}
void count_sum(int a, int b)
{
int count = 0;
int sum = 0;
for(int i = a; i <= b; i++)
{
if(is(i))
{
count++;
sum += i;
}
}
cout << "count = " << count << ", sum = " << sum <<endl;
return;
}