【C语言】判断一个数是否是完全平方数(两种解法)

导读:本篇文章讲解 【C语言】判断一个数是否是完全平方数(两种解法),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

题目:

判断一个数是否是完全平方数。
以下数字为完全平方数:4=2*2,9=3*3,144=12*12,169=13*13

有两个方法,可以求完全平方数:

方法一:输入一个数,遍历所有比这个数小的数,只要有其中一个数满足条件 小于该数的数 * 小于该数的数 = 该数,如3*3 = 9,那么这个数是完全平方数。

方法二:输入一个数,对这个数开方后取整,√该数 * √该数 = 该数,如√9*√9 = 3*3 = 9 ,那么这个数是完全平方数。

  • 使用sqrt()函数,对整数进行开方,开方后得到的是浮点数
  • 完全平方数开方后得到的应该是一个整数,而不是小数,所以使用(int)对这个开方后的数取整(3.9取整是3,3.0取整是3)
  • 这个数开方后取整得到的数,再平方,如果等于输入的数,那么该数是完全平方数

例:
输入9:√9 = 3.000000 -> (int)3.000000 = 3 -> 3*3 = 9,得到9是完全平方数
输入7:√7 = 2.645751 -> (int)2.645751 = 2 -> 2*2 != 7,得到7不是完全平方数

1.方法一的代码实现如下:

#include<stdio.h>

int main()
{
	int i,n,flag=0; //flag标记是否是完全平方数,默认flag=0不是完全平方数
	scanf("%d",&n);
	for(i=1;i<n;i++) //从1循环到n-1
		if(i*i==n) //完全平方数判断条件
			flag=1;
	if(flag==1)
		printf("%d是完全平方数\n",n);
	else
		printf("%d不是完全平方数\n",n);
	return 0;
}

运行结果如下:

在这里插入图片描述
在这里插入图片描述

2.方法二的代码实现如下:

#include<stdio.h>
#include<math.h>

int main()
{
	int n,integer; 
	scanf("%d",&n);
	integer = (int)sqrt(n); //对输入的整数开方后,得到浮点数,再对浮点数取整
	if(n == integer * integer) //完全平方数判断条件
		printf("%d是完全平方数\n",n);
	else
		printf("%d不是完全平方数\n",n);
	return 0;
}

运行结果如下:

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84890.html

(2)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!