C语言取余数好像溢出了?
来源:百度知道 编辑:UC知道 时间:2024/06/15 07:14:14
#include <stdio.h>
#include <math.h>
main()
{
int i,bit=0,binary[32],a,k=0, N, pm[20];
N=1024;
a=12;
while (N!=0){
bit++;
i=N%2;
binary[bit]=i;
N=N/2;
}
pm[0]=a%N;
for(i=1;i<=19;i++){
pm[i]=(pm[i-1]*pm[i-1])%N;
printf("%u\n",pm[i]);
}
}
#include <math.h>
main()
{
int i,bit=0,binary[32],a,k=0, N, pm[20];
N=1024;
a=12;
while (N!=0){
bit++;
i=N%2;
binary[bit]=i;
N=N/2;
}
pm[0]=a%N;
for(i=1;i<=19;i++){
pm[i]=(pm[i-1]*pm[i-1])%N;
printf("%u\n",pm[i]);
}
}
pm[0]=a%N;
取余数跟除法一样,除数不能为0.
写注释是个好习惯,特别是程序需要给别人或多年之后的自己看的时候。
完成while循环后,N的值已经是0,还怎么能做除数呢?