C++ 入门基础 取余数的应用价值

取余数的应用价值

在数学中常见的有加减乘除,而在计算机编程中,多了一个叫模的东西,也就是我们所的取余。

取余数的作用有哪些呢?

在c++中,整数和整数相除,得到的还是整数,余数部分若需要则需要用模(%)计算出来。

取余数还可以用在判断奇偶性上,因为我们看到数字一眼就能看出来是单数还是双数。

 

但是计算机不可以,因此我们需要给它一个规则,让其按照这个规则进行计算。

并且我们已经推算(注:就是推算!因为写程序需要找规律,而不是看!)得知,奇数不能被2整除,偶数可以被2整除,那么我们可知奇数除以2的余数是1,偶数除以2的余数是0,因此我们可以利用这个规则进行判断一个数是奇数还是偶数。

例:

#include
using namespace std;
int main() {

	int n;
	cin>>n;
	if(n%2==0){
		cout<<"是偶数"<

除了求奇偶性之外,还可以求质数、进制转换、拆数等用途,下面我们就求质数做一个简单的展示,其他功能将新开一个章节介绍。

质数(素数)是什么,只能被1和它自身整除的数称为质数。因此我们可知,最小的质数是2,因为1只能被1 整除(这里我们就不细说了,这归数学管,我们是用)。

质数的用途有哪些,那就多了,而我就只知道几个(手动狗头),其中最著名的就是哥德巴赫猜想了:任一大于 2 的偶数都可写成两个质数之和。因此,我们还是要认真了解在计算机中怎么求一个数是否是质数了。

根据定义我们可知,一个大于等于2的数能被除了1和它自身的数整除,则是合数,否则是质数。

代码如下:

#include
using namespace std;
int main() {

	int n,f=1;//标识符f,若f改变则证明找到了能整除该数的其他数值 
	cin>>n;
	for(int i=2;i

但是,我们经过计算可以知道,从2开始到n/2+1结束就可以了,因为一个大于这个数n的一半x,n/x的值将是在2到1之间的一个小数,不可能是整数,因此后面的数则不可能还有整除的数,故可以排除一半的数据,减少循环次数。

部分代码如下:

for(int i=2;i<=n/2+1;i++){//模拟除了1和它本身的其他数 
		if(n%i==0) {
			f=0;
			break;
		} 
	}

但但是,我们还知,一个数可以拆成a*b=n,假定a<=b,则可以写成a*a<=a*b<=n,若我们模拟到a仍未找到能整除n的数,故可得出结论n是质数。

部分代码如下:

for(int i=2;i*i<=n;i++){//模拟除了1和它本身的其他数 
		if(n%i==0) {
			f=0;
			break;
		} 
	}

最后我们给出两个完整代码

常规版:

#include
using namespace std;
int main() {

	int n,f=1;//标识符f,若f改变则证明找到了能整除该数的其他数值 
	cin>>n;
	if(n<2) f=0;//若n小于2则一定不是质数 
	for(int i=2;i*i<=n;i++){//模拟除了1和它本身的其他数 
		if(n%i==0) {
			f=0;
			break;
		} 
	}
	if(f==1){
		cout<<"是质数"<

函数版:(若看不懂,就敬请期待我们的函数讲解篇吧)

#include
using namespace std;
int zs(int n){
	if(n<2) return 0; 
	for(int i=2;i*i<=n;i++){
		if(n%i==0) return 0;
	}
	return 1;
} 
int main()
{
	int n;
	cin>>n;
	if(zs(n)==1){
		cout<<"是质数"<

到此,差不多结束了,我们后面还会补充进制转换,敲七小游戏等,这些都与取余数密切相关。

最后,还是那句话,如有不足,欢迎大家补充,我们是在一块学习进步的!

你可能感兴趣的:(基础知识,c++)