1441: 【入门】等差数

内存限制:32 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:31 解决:16

题目描述

Peter同学刚刚在学校学习了等差数列的概念。等差数列,指的是一组数,这些数连续2个数的差值是相等的,比如:1 2 3,1 3 5,8 5 2,这些数的连续两个数的差值都是相等的。
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

提示

m,n = map(int,input().split())
for i in range (m, n+1):
    t=i
    a=t%10
    t//=10
    b=t%10
    t//=10
    c=t%10
    t//=10
    d=t%10
    if d==0 and b-a==c-b:
        print(i)
    elif b-a==c-b and c-b==d-c:
        print(i)

#include<bits/stdc++.h>
using namespace std;

int main(){
    int m,n;
    cin>>m>>n;
    for (int i=m;i<=n;i++) {
    	int k=i;
    	int a=k%10;
    	k/=10;
    	int b=k%10;
    	k/=10;
    	int d=b-a;
    	int flag=1;
    	while (k>0) {
    		int t=k%10;
    		if (t-b!=d) {
    			flag=0;
    			break;
			}
			b=t;
    		k/=10;
		}
		if (flag)
		    cout<<i<<endl;
	}
	return 0;
}