算法练习【1】输出区间[M,N](10≤M≤N≤1000)之间所有各位数值之和为k的数,并统计输出满足条件的数的个数

题目

输出区间[M,N](10≤M≤N≤1000)之间所有各位数值之和为k的数,并统计输出满足条件的数的个数。

输入格式:
输入在第一行中给出正整数k,第二行中给出2个正整数M和N(10≤M≤N≤1000),中间用空格间隔。

输出格式:
在第一行中输出满足条件的所有数,每个数后面一个空格。

在第二行按count = 总数的格式输出满足条件的数的个数。

注意:若没有满足条件的数,则第一行为空行

输入样例1:
5
200 300
输出样例1:
203 212 221 230 
count = 4
输入样例2:
6
100 103
输出样例2:

#include <stdio.h>
int main()
{
    int k = 0;
    int M = 0;
    int N = 0;
    int re = 0;
    int i = 0;
    int count = 0;
    scanf("%d", &k);
    scanf("%d%d",&M,&N);
    for (i = M; i <= N; i++)
    {
        if (i >= 10 && i < 100)
        {
            if (k == (i / 10 + i % 10))
            {
                re = 1;
                count++;
                printf("%d ",i);
            }
        }
        if (i >= 100 && i <= 1000)
        {
            if (i != 1000)
            {
                int a = i / 100;
                int b = i % 100 / 10;
                int c = i % 10;
                if (k == a + b + c)
                {
                    re = 1;
                    printf("%d ",i);
                    count++;
                }
            }            
        }
        
    }
    if (re == 0)
    {
        printf("\n");
    }
    else
    {
    	 printf("\ncount = %d", count);
	}
    return 0;
}

 

猜你喜欢

转载自blog.csdn.net/fangzicheng/article/details/106871308