100到1000之间的各位数字之和能被15整除的所有数
题目
编写程序,输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。
思路
1.范围为100到1000之间的所有数。
关于1的执行思路可以看下面:
for循环用变量 i 实现100到1000之间数的遍历。
2.各位数字之和。
关于2的执行思路可以看下面:
建立变量k,用 k += n % 10 实现各位数字相加。
do while 用 n = n / 10 由后往前实现各位数字的遍历,当n=0时,退出循环。
3.整除和输出:
关于3的执行思路可以看下面:
用if判断 k % 15 是否为0,若为0,则输出。
代码
#include "stdio.h"
void main()
{
int m, n, k, i = 0;
for (m = 100; m <= 1000; m++)
{
k = 0;
n = m;
do
{
k = k + n % 10;
n = n / 10;
} while (n != 0);
if (k % 15 == 0)
{
printf("%5d", m); i++;
if (i % 10 == 0) printf("\n");
}
}
}
写的过程中想到的问题
建立函数
#include <stdio.h>
int sum_pre(int n )
{
int k=0;
do
{
k += n % 10;
n = n / 10;
} while (n != 0);
return k;
}
void Ediv__sum_pre15(int radius_min,int radius_max)
{
int k = 0;
for (int i = radius_min; i < radius_max; i++)
{
if (sum_pre(i) % 15 == 0)
{
printf("%5d", i);
k++;
if (k % 10 == 0) printf("\n");
}
}
}
main()
{
Ediv__sum_pre15(100, 1000);
}