求解答(C语言)

酒呀! 2019-05-19 03:54:37
编写一个函数,实现判断一个3位数是否是完全平方数(如果整数A等于整数B的平方,那么我们就说A为完全平方数),而且有位数字相高44=12^2,676=26^2等,再 编写一个主函数,从键盘输入n,调用上面编写的函数找出101~n之间所有满足上述条件的数,在屏幕上输出显示。 现将函数函数头定义如下: int isthefinenumber(int n) 如果满足上述条件是完全平方数且2位数字相同返回“1”,如果不满足上述条件返回“0”,根据返回是“1”还是“0”判断是否在屏幕上输出
...全文
82 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
酒呀! 2019-06-11
  • 打赏
  • 举报
回复
引用 2 楼 jsx_SEVEN的回复:
写的有点乱,你试试能用不

#include <stdio.h>
#include <stdlib.h>

int isthefinenumber(int n)
{
	int i;
	int nums[3];
	int x=0;
	nums[0] = n / 100;
	nums[1] = (n - nums[0] * 100) / 10;
	nums[2] = (n - nums[0] * 100 - nums[1] * 10);  //分解出百位、十位、个位
	
	for (int j = 10; j < 32; j++)//三位数开方的范围
	{
		if (n == j * j)   //如果是完全平方数
		{
			if (nums[0] == nums[1] || nums[0] == nums[2] || nums[1] == nums[2])
				return 1;
		}
	}	
	return 0;
}

int main()
{
	int n,i;
	scanf("%d", &n);
	for ( i = 101; i < n; i++)
	{
		if (isthefinenumber(i))
			printf("%d  ", i);
	}
}
大神,能不能帮我看看我新的那道题目,我是真的不会了
酒呀! 2019-06-04
  • 打赏
  • 举报
回复
引用 3 楼 自信男孩的回复:
#include <stdio.h>
#include <math.h>

int main(void)
{
int num, tmp, i;

printf("Please input a three-digit number: ");
scanf("%d", &num);

while (num < 101 || num > 1000) {
printf("Input error, please try again: ");
scanf("%d", &num);
}

for (i = 101; i <= num; i++) {
tmp = (int)sqrt(i);
if (tmp * tmp == i)
printf("%d is a complete squares number(%d = %d x %d)\n", i, i, tmp, tmp);
}

return 0;
}


供参考~
谢谢大佬,我试过了,可以用的,多谢了
自信男孩 2019-05-20
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <math.h>

int main(void)
{
int num, tmp, i;

printf("Please input a three-digit number: ");
scanf("%d", &num);

while (num < 101 || num > 1000) {
printf("Input error, please try again: ");
scanf("%d", &num);
}

for (i = 101; i <= num; i++) {
tmp = (int)sqrt(i);
if (tmp * tmp == i)
printf("%d is a complete squares number(%d = %d x %d)\n", i, i, tmp, tmp);
}

return 0;
}


供参考~
周末ZhouMo 2019-05-19
  • 打赏
  • 举报
回复
写的有点乱,你试试能用不

#include <stdio.h>
#include <stdlib.h>

int isthefinenumber(int n)
{
	int i;
	int nums[3];
	int x=0;
	nums[0] = n / 100;
	nums[1] = (n - nums[0] * 100) / 10;
	nums[2] = (n - nums[0] * 100 - nums[1] * 10);  //分解出百位、十位、个位
	
	for (int j = 10; j < 32; j++)//三位数开方的范围
	{
		if (n == j * j)   //如果是完全平方数
		{
			if (nums[0] == nums[1] || nums[0] == nums[2] || nums[1] == nums[2])
				return 1;
		}
	}	
	return 0;
}

int main()
{
	int n,i;
	scanf("%d", &n);
	for ( i = 101; i < n; i++)
	{
		if (isthefinenumber(i))
			printf("%d  ", i);
	}
}
Dakeslon 2019-05-19
  • 打赏
  • 举报
回复
用折半查找,计算出平方是否等于输入的整数就可以了。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧