分别找100到999(含100和999)之间所有整数中各位上数字之和为x的整数,并输出其中x取值

问题描述:

分别找100到999(含100和999)之间所有整数中各位上数字之和为x的整数,并输出其中x取值
为1到27之间所有的整数.
1个回答 分类:综合 2014-11-18

问题解答:

我来补答
这个问题不难,一个循环+一个函数(计算每位数字之和)即可.不过你的问题描述似乎不完整.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
 
 
展开全文阅读
剩余:2000
下一页:细胞的物质输入