Advertisement

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之整除与取余(一)

阅读量:

在C++语言中使用的整除运算是与传统数学中的不同之处在于它采用的是地板取值的方式进行计算。通过将取余操作与之结合能够实现任意两个整数之间的精确分割计算过程。在编程实践中积累了一定的经验后发现,在处理数值计算问题时掌握好这些基础操作对于解决实际问题具有重要意义。例如,在编程环境中计算10/3时会得到商为3、余数为1的情况;而计算3/10则会得到商为0、余数为3的结果。对于像累加、累乘这样的操作而言,在某些特殊场景下如何利用这些基础操作进行拓展开发就显得尤为重要

**()、**整除

在计算机中的整除运算计算方式仅得到商的结果。例如:15/4等于15被4划分所得之商即3;同样地 14/2等于7;x/5则转换为x被5划分所得之商 m/10则转换为m被10划分所得之商

实战训练****1—根据整除的意义填写表达式的运算结果。

表达式 运算结果 表达式 运算结果
15/4 10/2
17/8 16/7
13/5 22/32

问题分析:

整除运算的结果即为除法运算结果中的商。由此可知左边一栏自上而下依次列出的数值是3、2、2;右边一栏自上而下依次列出的数值是5、2、0。

(二)、取余

余除运算亦被称为模运算。当计算15除以4时所得的余数等于将该数减去(其整数商与其除数之积),即结果为3;类似地,在计算方法上是将该数值减去其整数商与其对应的基数相乘的结果。例如,在计算过程中的结果分别为:对于数值38来说,则是将其减去(其整数值与其基数相乘的结果),即得到一个值为8;而x%5则表示x与5相除所得的余数值;m%10则表示m与十相除所得的余数值。

总结:取余运算可以用数学表达式a%b = a - (a/b)*b来表示。同样地,在讨论其他模运算时(例如模5或模y),我们可以将数值分成不同的类别。当计算x mod 5时(即x%5),结果可能是0到4之间的任意一个整数值。通过这种方式分析模运算可以帮助我们更好地理解其规律和应用。

利用模运算的结果是否为1或0来判断该数的奇偶性;如果一个数对y取模后的结果等于零,则可以判定该数能被y整除。

实战训练2—反向输出一个三位数

时间限制:1s,空间限制:64MB

问题描述:

将一个三位数反向输出。

输入格式:

一行一个三位数n。

输出格式:

反向输出n。

输入输出样例:

输入样例 输出样例
100 001

问题分析:

本题的具体操作就是通过数学运算获取一个三位数中各个位置上的所有数字,并将其简称为"数位分离"的过程。举例说明以本题中的三位数为例,在具体操作中:首先可以通过该三位数对10取模来确定个位数字;接着将该三位数先除以10得到十位及以下的数值后再对10取模即可获得十位数字;然后将该三位数除以100后所得整数值即为百位数字;最后将这三个单独获取到的数字按逆序排列即可完成任务。

复制代码
  
    
 #include<bits/stdc++.h>
    
 using namespace std;
    
 int main() {
    
     int n,a,b,c;//定义三位数n,以及个位数字a、十位数字b、百位数字c
    
     cin>>n;//输入三位数
    
     a=n%10;//得到三位数的个位数字
    
     b=n/10%10;//得到三位数的十位数字
    
     c=n/100;//得到三位数的百位数字
    
     cout<<a<<b<<c<<endl;
    
     return 0;
    
 }

全部评论 (0)

还没有任何评论哟~