小白Chapter 7, 7.11

比较好的思路。备忘。


#include <cstdio>

int repeat(int leftValue, int rightValue)
{
	char c;
	char buff[12];
	int i, j;
	int num = 5;

	sprintf(buff, "%05d", leftValue);
	if(rightValue > 0)
	{
		num = 10;
		sprintf(&buff[5], "%05d", rightValue);
	}
	for(i = 0; i < num; i++)
	{
		c = buff[i];
		for(j = 0; j < num; j++)
		{
			if(i == j) continue;
			if(buff[j] == c) return 1;
        }
	}
	return 0;
}


int main()
{
	int n;
	int i, j;

	scanf("%d", &n);

    for(i = 1234/n - 1; i< 98765/n + 1; i++)
    {
        if(repeat(i, 0)) continue;
        j = i * n;
        if(repeat(j, 0)) continue;
        if(repeat(i, j)) continue;
        printf("%05d/%05d ", j, i, n);
    }

	return 0;
}



你可能感兴趣的:(小白Chapter 7, 7.11)