【归纳】常见函数模版和解析
创始人
2024-11-15 06:04:59
0

【归纳】常见函数模版和解析

  • 1.判断是否是质数
  • 2.判断是否是闰年
  • 3.判断是否是完全数
  • 4.判断是否是完全平方数
  • 5.判断是否是回文数
  • 6.倒序分解一个数的每一位

1.判断是否是质数

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

简单粗暴的实现如下:

bool is_prime(const int& x)//判断是否为质数的函数 { 	if(x<2)return false;//小于2的数都不是质数     for(int i=2;i

还是一样的,看不懂也没关系,后面会慢慢学。

当然,合数有一个这样的特征:它们的因数都是成对出现的。比如:

20=1* 20=2* 10=4* 5

所以对于 x x x,我们只需要枚举到 x \sqrt{x} x​就可以了。

但使用sqrt函数会导致效率低下(计算机中开方、除法永远比乘方、乘法慢)所以我们可以判断 i ∗ i < = x i*i<=x i∗i<=x就可以了。

改进后的程序如下:

bool is_prime_quick(const int& x)//判断是否为质数的函数 { 	if(x<2)return false;//小于2的数都不是质数 	for(int i=2;i*i<=x;i++)//只需要枚举到sqrt(x)就行了 	   if(x%i==0)//如果枚举的这个数能被i整除 	       return false;//返回这个数不是质数 	return true;//否则就返回这个数是质数 } 

2.判断是否是闰年

判断闰年有一个口诀:四年一闰,百年不闰,四百年又闰。根据这个口诀模拟就好了。

bool leap_year(const int& x)//判断是否为闰年的函数 { 	if((x%4==0&&x%100!=0)||x%400==0)//口诀 	    return true;//满足条件就返回真 	return false;//否则返回假 } 

3.判断是否是完全数

一个数所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。我们就称这个数为完全数。

bool is_perfect_num(const int& s)//判断是否为完全数的函数 { 	int m=0;//用m存储这个数所有的真因子之和 	if(s<6)return false;//最小的完全数是6,小于6的都不是完全数 	//枚举小于这个数的数,注意不能枚举到这个数本身 	for(int i=1;i

4.判断是否是完全平方数

若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数

我们可以运用隐式类型转换判断一个数是否是完全平方数。

bool is_perfect_pow_2_number(const int& n)//判断是否为完全平方数的函数 { 	int x=(int)sqrt(n);//强制转换,如果不是完全平方数则会丢失精度 	if(x*x==n)//如果这个数的平方等于原数 	    return true;//返回真 	return false; } 

5.判断是否是回文数

设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数

我们只需要根据定义模拟就可以了。

bool is_palindrome(const int& num)//判断是否为回文数的函数 { 	int num1=0,n; 	if(num/10==0)return true;//个位数也是回文数 	//因为num最后要用来判断,所以不能直接使用它。 	n=num;//要将num的值赋给另外一个变量 	while(n)//只要没有取完就一直取 	{ 		num1=num1*10+n%10;//更新num1 		n=n/10;//取完一位,除以10 	} 	if(num1==num)return true;//如果相等就返回真 	return false; } 

6.倒序分解一个数的每一位

int a[10010],cnt;//存储这个数的每一位 void Decompose_each_digit(const int& num) {     int n=num;//先将num储存下来     while(n)//只要没有取完就继续取     {         a[++cnt]=n%10;//分解个位         n/=10;//把个位丢掉     } } 

喜欢就订阅此专辑吧!

【蓝胖子编程教育简介】
蓝胖子编程教育,是一家面向青少年的编程教育平台。平台为全国青少年提供最专业的编程教育服务,包括提供最新最详细的编程相关资讯、最专业的竞赛指导、最合理的课程规划等。本平台利用趣味性和互动性强的教学方式,旨在激发孩子们对编程的兴趣,培养他们的逻辑思维能力和创造力,让孩子们在轻松愉快的氛围中掌握编程知识,为未来科技人才的培养奠定坚实基础。

欢迎扫码关注蓝胖子编程教育
在这里插入图片描述

相关内容

热门资讯

第六分钟辅助挂!家乡大二辅助工... 第六分钟辅助挂!家乡大二辅助工具(辅助挂)详细教程(果然存在有挂)1、构建自己的微扑克辅助插件;2、...
三分钟辅助!捉住捣蛋鸡作弊码(... 三分钟辅助!捉住捣蛋鸡作弊码(辅助挂)确实有挂(详细辅助第三方教程)1、捉住捣蛋鸡作弊码系统规律教程...
黑科技辅助“广东插件智能插件安... 黑科技辅助“广东插件智能插件安装包免费”外挂透视辅助脚本(本来有挂)1、该软件可以轻松地帮助玩家将广...
十分钟透视!川南欢乐碰辅助(辅... 您好,川南欢乐碰辅助这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这...
第6分钟了解!新玄龙插件(辅助... 第6分钟了解!新玄龙插件(辅助挂)确实有挂(详细辅助详细教程);1、第6分钟了解!新玄龙插件(辅助挂...
黑科技辅助挂“新广西老友辅助”... 黑科技辅助挂“新广西老友辅助”外挂透视辅助系统(都是存在有挂);1、下载好新广西老友辅助辅助软件之后...
4分钟脚本!指尖四川刷无限钻石... 4分钟脚本!指尖四川刷无限钻石(辅助挂)力荐教程(最初存在有挂)1、在指尖四川刷无限钻石ai机器人技...
第八分钟辅助器!八闽掌上十八卦... 第八分钟辅助器!八闽掌上十八卦脚本(辅助挂)其实有挂(详细辅助攻略方法)1.八闽掌上十八卦脚本 ai...
黑科技辅助“闲来广东麻将辅助工... 黑科技辅助“闲来广东麻将辅助工具”外挂透视辅助脚本(一直真的是有挂);1、点击下载安装,闲来广东麻将...
第十分钟插件!大当家辅助脚本下... 第十分钟插件!大当家辅助脚本下载(辅助挂)透明挂教程(素来是真的有挂)1)大当家辅助脚本下载辅助挂:...