A. Beautiful Year

A. Beautiful Year

time limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output

It seems like the year of 2013 came only yesterday. Do you know a curious fact? The year of 2013 is the first year after the old 1987 with only distinct digits.

Now you are suggested to solve the following problem: given a year number, find the minimum year number which is strictly larger than the given one and has only distinct digits.

Input
The single line contains integer y (1000 ≤ y ≤ 9000) — the year number.

Output
Print a single integer — the minimum year number that is strictly larger than y and all it’s digits are distinct. It is guaranteed that the answer exists.

问题链接:A. Beautiful Year.

问题简述:

输入一个年份y,求这个年份后第一个四个数字都不同的年份。y (1000 ≤ y ≤ 9000)

程序说明:

AC通过的C语言程序如下:

#include<iostream>
using namespace std;
//判断这一年是不是一个好看的年份
bool qua(int a[])
{
	if(a[0]!=a[1]
	&&a[0]!=a[2]
	&&a[0]!=a[3]
	&&a[1]!=a[2]
	&&a[1]!=a[3]
	&&a[2]!=a[3])return 0;
	else return 1;
}
int main()
{
	int year,ans[4],h;
	cin>>year;
	year++;h=year;
	//将四个数字提取出来
	for(int i =0 ;i<4;i++)
	{
		ans[i] = h%10;
		h = h/10;
	}
	while(qua(ans))
	{
		year++;h = year;
		for(int i =0 ;i<4;i++)
	{
		ans[i] = h%10;
		h = h/10;
	}
	}
	h = ans[0]+ans[1]*10+ans[2]*100+ans[3]*1000;
	cout<<h;
	return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值