NYOJ - 733 万圣节派对

NYOJ - 733 万圣节派对

描述

万圣节有一个Party,XadillaX显然也要去凑热闹了。因为去凑热闹的人数非常庞大,几十W的数量级吧,自然要进场就需要有门票了。很幸运的,XadillaX竟然拿到了一张真·门票!这真·门票的排列规则有些奇怪:
门票号是由0~6组成的六位数(0~6这几个数字可重用)
每一个门票号的每一位不能有三个连续相同的数字(如123335是不行的)
每一个门票号相邻的两位相差必须在四以下(≤4)(如016245是不行的)

Code

#include <stdio.h>
#include <iostream>
#include <cstdlib>
using namespace std;

int isok(int n){
    int arr[6] = { 0 };
    int i = 0;
    while (n)
    {
        arr[i] = n % 10;
        #这里要对输入的数据,做判断
        if (arr[i]>6)
        {
            return 0;
        }
        n = n / 10;
        i++;
    }
    #j < 5 开始是 j < 6 老是不过,VS是过的
    for (int j = 1; j < 5; j++)
    {
        if ((abs(arr[j] - arr[j - 1])>4) || (abs(arr[j] - arr[j + 1])>4)){
            return 0;
        }
        else if ((arr[j]==arr[j-1])&&(arr[j]==arr[j+1]))
        {
            return 0;
        }
    }
    return 1;
}

int main()
{
    int n;
    cin >> n;
    while (n--)
    {
        int i, j;
        cin >> i >> j;
        for (int k = i; k <= j; k++)
        {
            if (isok(k))
            {
                #输出要符合题的要求 %06d 这个要学习下
                printf("%06d\n", k);
            }
        }
        cout << endl;
    }
    return 0;
}        

你可能感兴趣的:(NYOJ - 733 万圣节派对)