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);
}