关于取末或前几位数:
取末6位%6个0,取最末%1个0.
例如:121=1212%1000,23=123%100,3=23%10。
%的想法:你取几位数,它从后到前数几个数。
类比可得/的用法。
三角:
要计算只包含加法,减法和乘法的整数表达式除以正整数n的余数,可以在每步计算之后对n取余,结果不变。
#include<stdio.h>
#include<time.h>
int main()
{
const int MOD=1000000;
int i,j,n,s=0;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
int f=1;
for(j=i;j<=i;j++)
f=f*j%MOD;
s=(s+f)%MOD;
}
printf("%d\n",s);
printf("Time used =%.2lf\n",(double)clock()/CLOCKS_PER_SEC);
return 0;
}
可取之处:对于模运算的运用;对于“计时器”的运用。(但效率太慢)
注意:
CLOCKS_PER_SEC 与操作系统有关。
不要直接使用clock()的返回值,而应总是除以CLOCKS_PER_SEC,得到的值以秒为单位拟。