输入一个小于等于10000的整数n,在[100,n]之间打印出各位数字和为5的所有整数的个数。

PS:答案会写在文章最下方,建议先阅读完前面的几点信息后再看答案! 

输入:1000

输出:15

#include<stdio.h>

void main()
{
int a,b,c,d,k,i,n;
k=0;
scanf("%d",&n);
/**********Program**********/




/**********  End  **********/
printf("%d\n",k);
}

拿到题目后,我们应该知道以下几点信息:

1、用一个变量 i 把从100开始到 n 结束的数都遍历一遍

2、因为i是遍历的数,无法参与下面的运算,所以我们要把 i 赋值给一个变量 c

3、因为输入数的位数不确定,所以我们要用一个while循环来让无论是几位数,最终都能把这个数的每一位数相加

4、在while中我们需要把 c 的每一位都提取出来,所以我们需要使用到 %(模运算) 模运算后,把得出来的数放到一个可以求总和的变量上 

5、最终用if条件判断求总和的变量是否为5

6、进入if后,变量 k 要加一,以此得出最终k是多少 

最终代码如下:

#include<stdio.h>

void main()
{
int a,b,c,d,k,i,n;
k=0;
scanf("%d",&n);
/**********Program**********/
    for (i = 100; i < n; i++)
    {
        a=b=0;
        c=i;
        while (c!=0)
        {
            a = c % 10;
            c = c / 10;
            b += a;
        }
        if(b==5)
        {
            k++;
        }
    }
/**********  End  **********/
printf("%d\n",k);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值