问题:1466. 等差数
类型:简单循环
题目描述:
Peter 同学刚刚在学校学习了等差数列的概念。
等差数列,指的是一组数,这些数连续 2 个数的差值是相等的,比如:123,135,852,这些数的连续两个数的差值都是相等的。
Peter 根据等差数列的概念,自己定义了一个等差数的概念,这种数如果连续 2 位的差值相等,Peter 就认为它是等差数,比如:123,159,1357,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<bits/stdc++.h>
using namespace std;
int main(){
//一、分析问题
//已知:两个整数 m 和 n;
//未知:找出从m~n之间,有哪些等差数?
//关系:等差数的概念,如果连续 2 位的差值相等,就认为它是等差数,比如:123,159,1357,852 等这些数都是等差数。
//二、数据定义
int m,n,g,s,b,q;
//三、数据输入
cin>>m>>n;
//四、数据计算
for(int i=m;i<=n;i++){
g=i%10;
s=i/10%10;
b=i/100%10;
q=i/1000;
if(i>=1000&&(s-g==b-s)&&(b-s==q-b)) cout<<i<<endl;
if(i<1000&&(s-g==b-s)) cout<<i<<endl;
}
//五、输出结果
return 0;
}