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

本文介绍了一个C语言程序,用于寻找101到指定三位数之间的特殊整数,这些整数是完全平方数且其各位数字互不相同。通过定义数组存放结果并使用循环和条件判断实现目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 判断满足条件的三位数 
#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;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值