数组各个元素不相等的判断方式

来源:互联网 发布:重建僵尸大陆3修改数据 编辑:程序博客网 时间:2024/05/23 17:06

B:特殊的年份

  • View
  • Submit
  • Statistics
  • Clarify
总Time Limit: 
1000ms 
Memory Limit: 
65536kB
Description

韶华易逝,光阴苒冉。当你看到此题的时候,2013年已经离你远去。2013年是个特殊的年份你知道么?它是1987年以后第一个年份各个数字位互不相等的年份。现在知道也不晚,因为2014年也是一个特殊年份,珍惜接下来的特殊年份吧,好好学习,天天刷题。
    小明知道了2014年是特殊年份,很好奇还有哪些年份是特殊年份(各数字位互不相等)。然后,他拿出了一张纸,开始在纸上从2014写起,他想就这么每个年份数下去。作为学过计算概论的你,实在看不惯这种浪费体力、浪费纸张、一点也不环保的作风,于是你决定写程序帮帮他。 

Input
第一行为总测试数量n。( 0 < n < 10000 )
接下来的n行,每行有一个整数m,代表年份。( 1000 <= m <= 9000)
Output
对于每个年份m,输出一个整数y。y是大于m的最小的特殊年份(各数字位互不相等)。
输入的限制保证了 1000 < y < 9999。
Sample Input
219873102
Sample Output
20133104
Hint
大于1987的特殊年份有很多,如2013,、2014等,按照题目要求,应该输其中最小的特殊年份,因此输入为1987时输出2013。
Source
计算概论-医学部-2013-高良才-助教-ZYT

解题方法:   很简单, 主要是年份里面有不同的数字就可以了 需要一个函数去判断就行了 水题

源代码:
 
#include<iostream>using namespace std;bool NIAN(int a){    int  i, j,b[5];    int k = 0;    while(a)    {        b[k] = a%10;        a /=10;        k++;    }    for(i = 0; i < k; i++)    {        for(j = 0 ; j < k ; j++)        {            if((i!= j) && b[i]== b[j])            {                return false;            }        }    }    return true;}int main(){    int t, i, n;    cin>>t;    while(t--)    {        cin>>n;        for(i = n+1; ; i++)        {            if(NIAN(i))            {                cout<<i<<endl;                break;            }        }    }    return 0;}

  
0 0
原创粉丝点击