题目描述
所谓鸢尾花数,是指一个正整数的十进制表示中,任意相邻两位的数字之差是一个常数,比如12345,8642,66666都是鸢尾花数,而88910与121不是鸢尾花数。
给定一个区间[a,b],请找出在a到b之间的所有鸢尾花数。
输入描述
单独一行:两个正整数a与b
输出描述
单独一行:表示给定区间内所有的鸢尾花数,以空格隔开。如果该区间内没有鸢尾花数,输出-1
。
输入样例
100 150
输出样例
111 123 135 147
数据描述
1≤𝑎,𝑏≤105
AC代码
#include<bits/stdc++.h>
using namespace std;
int a,b,ans[8],f;
int main(){
cin>>a>>b;
for(int i=a;i<=b;i++){
int len=0,flag=0,t=i;
while(t!=0){
ans[++len]=t%10;
t/=10;
}
int x=ans[2]-ans[1];
for(int j=1;j<len;j++){
if(ans[j+1]-ans[j]!=x){
flag=1;
break;
}
}
if(!flag){
f=1;
cout<<i<<" ";
}
}
if(!f) cout<<-1;
return 0;
}