分别找100到999(含100和999)之间所有整数中各位上数字之和为x的整数,并输出其中x取值为1到27之间所有的整数.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/08 06:16:35
分别找100到999(含100和999)之间所有整数中各位上数字之和为x的整数,并输出其中x取值为1到27之间所有的整数.
分别找100到999(含100和999)之间所有整数中各位上数字之和为x的整数,并输出其中x取值
为1到27之间所有的整数.
分别找100到999(含100和999)之间所有整数中各位上数字之和为x的整数,并输出其中x取值为1到27之间所有的整数.
这个问题不难,一个循环+一个函数(计算每位数字之和)即可.不过你的问题描述似乎不完整.100~999,每个数的数字之和的范围就是1~27.你的x有什么具体的要求?下面是一个范例,根据需要自己修改吧...
#include <stdio.h>
unsigned int GetDigitSum(unsigned int num);
int main(int argc, char** argv)
{
unsigned int iter, sum_digits, l_count = 0;
const unsigned int IT_MIN = 100;
const unsigned int IT_MAX = 999;
const unsigned int S_MIN = 1;
const unsigned int S_MAX = 27;
for (iter = IT_MIN; iter <= IT_MAX; ++iter)
{
sum_digits = GetDigitSum(iter);
//if ( (sum_digits >= S_MIN) && (sum_digits <= S_MAX) )
if ( sum_digits == 20 ) // <--- 修改这里为自己的判断标准
{
printf (" %d, digits sum.: %d\n", iter, sum_digits);
l_count++;
}
}
printf("Total: %d\n", l_count);
return 0;
}
unsigned int GetDigitSum(unsigned int num)
{
unsigned int sum = 0, remainder;
while (num != 0)
{
remainder = num % 10;
sum = sum + remainder;
num = num / 10;
}
return sum;
}
输出:
299, digits sum.: 20
389, digits sum.: 20
398, digits sum.: 20
...
983, digits sum.: 20
992, digits sum.: 20
Total: 36