10-1 判断满足条件的三位数

// 判断满足条件的三位数 
#include <stdio.h>
#define N 50

int Find(int n, int *p);

int main(void)
{
	int Number[N];		// 存放所有满足条件的三位数
	int n;				// 3位数n
	int count;
	int i;
	
	printf("请输入一个3位数:");
	scanf("%d", &n);
		
	count = Find(n, Number);
	printf("在101~%d间共有%d个符合条件的数\n", n, count);
	
	for (i=0; i<count; i++)
	{
		printf("%d\t", Number[i]);
	} 
	printf("\n");

	return 0;
}

int Find(int n, int *p)
{
	int i = 101;
	int flag = 0;		// 标志位 
	int count = 0;		// 计数 
	int k;
	
	for (k=0; k<N; k++)
	{
		p[k] = 0;
	}
	
	while (i<=n)
	{
		flag = 0;
		int j;
		for (j=11; j<32; j++)
		{
			if (i == j*j)
			{
				int digit0 = i%10;			// 个位 
				int digit1 = (i/10)%10;		// 十位 
				int digit2 = i/100;			// 百位 
				if ((digit0==digit1)||(digit0==digit2)||(digit1==digit2))
				{
					flag = 1;
					break;
				}
			}
		}
				
		if (flag)
		{
			*p = i;
			p++;
			count++;
			i = i+20;
		}
		else
		{
			i++;
		}
	}
	
	return count;
}

猜你喜欢

转载自blog.csdn.net/kirisame9/article/details/84668062
今日推荐