题目描述
Peter同学刚刚在学校学习了等差数列的概念。等差数列,指的是一组数,这些数连续2个数的差值是相等的,比如:1 2 3,1 3 5,8 5 2,这些数的连续两个数的差值都是相等的。
Peter根据等差数列的概念,自己定义了一个等差数的概念,这种数如果连续2位的差值相等,Peter就认为它是等差数,比如:123,159,13579,852等这些数都是等差数。
请你编程帮助Peter同学找出从m~n之间,有哪些等差数?
输入
两个整数m和n(m<=n,且m和n都是100~9999之间的数)
输出
输出m~n之间的等差数,每行1个
样例输入
900 2000
样例输出
951 963 975 987 999 1111 1234 1357
比较繁琐的做法:
#include<stdio.h>
int main()
{
int i, m, n, g, s, b, q;
scanf("%d %d", &m, &n);
for (i = m; i <= n; i++)
{
g = i % 10;//个位
s = i / 10 % 10;//十位
b = i / 100 % 10;//百位
q = i / 1000;//千位
if (i < 1000)//100-999的情况
{
if (g - s == s - b || b - s == s - g)//满足等差
printf("%d\n", i);
}
if (i >= 1000)//1000-9999的情况
{
if (q - b == b - s && b - s == s - g && q - b == s - g)//满足等差
printf("%d\n", i);
}
}
return 0;
}