鸢尾花数 强化练习二

题目描述

所谓鸢尾花数,是指一个正整数的十进制表示中,任意相邻两位的数字之差是一个常数,比如12345,8642,66666都是鸢尾花数,而88910与121不是鸢尾花数。

给定一个区间[a,b],请找出在a到b之间的所有鸢尾花数。

输入描述

单独一行:两个正整数a与b

输出描述

单独一行:表示给定区间内所有的鸢尾花数,以空格隔开。如果该区间内没有鸢尾花数,输出-1

输入样例

 
  1. 100 150

输出样例

 
  1. 111 123 135 147

数据描述

1≤a,b≤1051≤a,b≤10​5​​

#include<iostream>
using namespace std;
long long a[1000005],n,m,sum;
bool fun(int n){
	int cnt=0;
	while(n){
		a[++cnt]=n%10;
		n/=10;
	}
	int l=a[1]-a[2];
	for(int i=3;i<=cnt;i++){
		if(a[i-1]-a[i]!=l) return 0;
	}
	return 1;
}
int main(){
	bool f=0;
	cin>>n>>m;
	for(int i=n;i<=m;i++){
		if(fun(i)){
			f=1;
			cout<<i<<" ";
		} 
	}
	if(!f) cout<<"-1";
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值