求模运算%
在C++里面,求模运算的作用就是用来求出两个操作数相除之后的余数!注意哈,不是商。如下例
9%3=0;9/3=3。
反正,我是很少利用求模运算的,但是,有些时候,找出余数也是很有用的。比如说,如果现在有60个数字要输出(从0~59),但只允许每行输出6个数字。很显然,这个程序需要输出10行来达到目的。
最开始,我想采用两个for循环来完成这样一个工作,外层循环为行数控制,内层循环为打印的数字,如下
int main() { for (int i=0;i<10;i++) { for(int j=0;j<6;j++){ cout<<j; } cout<<endl; } }
但是仔细研究过我写的代码就会发现,其实它只会输出10行的0 1 2 3 4 5,囧......
原因其实很简单,就是在内层循环的时候根本无法开始累积到以上的数字,于是只好换一个思路。
法1,不采用求模运算
int main() { for (int i=0;i<60;i++){ if(i==6||i==12||i==18||i==24||i==30||i==36||i==42||i==48||i==54) cout<<endl; cout<<i<<'\t'; } }
在上面的程序里面,判断i的值时应该采用或运算符||,千万不要用成了与运算符&&!
法2,采用求模运算
int main() { for (int i=0;i<60;i++){ if (i%6==0&&i!=0) cout<<endl; cout<<i<<' '; } }
通过法1和法2的对比,我们可以明显地看出利用求模运算%,程序就会变得十分简洁明了。