数组-寻找特殊偶数

【题】

寻找特殊偶数


背景

有一种特殊偶数,它每一位上的数字都两两不相同。我们现在需要找出四位数中某一区间内的这类偶数。

输入

所要寻找的四位偶数的范围。每组输入有两个数字:第一个数字是最小范围;第二个数字是最大范围。如果输入遇到0,输入结束。

输出

列出此范围内的所有特殊偶数,并且列出此范围内特殊偶数的个数。

  测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助
测试用例 1 以文本方式显示
  1. 3000  3020↵
  2. 6040  6090↵
  3. 0 0↵
以文本方式显示
  1. 3012  3014  3016  3018  ↵
  2. counter=4↵
  3. 6042  6048  6052  6054  6058  6072  6074  6078  6082  6084  ↵
  4. counter=10↵
无限制 64M 0
测试用例 2 以文本方式显示
  1. 9  101↵
  2. 87 -1↵
  3. 0 0↵
以文本方式显示
  1. Error↵
  2. Error↵
无限制 64M 0
【代码】

#include "stdio.h"

int main()
{
	int min = 3000, max = 3020;
	int i, j, k, count = 0, flag = 1;

	int arr[4];

	while (1)
	{
		scanf("%d %d", &min, &max);
		getchar();

		if (min == 0 && max == 0)
		{
			break;
		}

		if (min < 1000 || min > 9999 || max < 1000 || max > 9999)
		{
			printf("Error\n");
			continue;
		}
		
		count = 0;
		for (i = min; i <= max; i++)
		{
			if (i % 2 == 1)
			{
				continue;
			}
			arr[0] = i / 1000;
			arr[1] = i % 1000 / 100;
			arr[2] = i % 100 / 10;
			arr[3] = i % 10;
			flag = 1;
			for (j = 0; j < 4; j++)
			{
				for (k = 0; k < 4; k++)
				{
					if (j != k && arr[j] == arr[k])
					{
						flag = 0;
						break;
					}
				}
				if (!flag)
				{
					break;
				}
			}
			if (flag)
			{
				printf("%d  ", i);
				count++;
			}
		}
		printf("\ncounter=%d\n", count);
	}
	
    return 0; 
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值