求模运算%

  在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的对比,我们可以明显地看出利用求模运算%,程序就会变得十分简洁明了。
posted @ 2011-07-10 12:39  uniqueliu  阅读(8118)  评论(4编辑  收藏  举报