用最简单的编程语言写一段程序,求3的100次方除以7的余数。
用最简单的编程语言写一段程序,求3的100次方除以7的余数。 关键是用了两个函数, 一个是乘方函数,一个求余函数乘方函数 :lol 偶完了 求余函数似乎是 MOD
编程好久没完了。都还给老师了。 有这么麻烦吗?个人估计手工都可以算得出来,这里面肯定有个循环的规律,而不至于需要把3的100次方算出来后在去取余。 main()
{
char m,n,l;
m=1;
if(n=1;n++;n<=100)
{m=3*m;
}
return(m);
l=m mod 7;
printf(this is :char\n,l)
}
我担心的是 第一:3的100方 我用char 合不合理 用其他的好象装不下
第二:那就是里面具体的形式有没有错 只供查考 谢谢
回复 #4 meix520 的帖子
ls的,3的100次方如果这样算会不会溢出,你准备用什么格式的数字来表示?:lol算法
一般方法求:X^e%n 化为三元组 (x,e,y)且初始化(x,e,1)1. 当e为奇数时,用x*y%n代替y,用e-1代替e;
2. 当e为偶数时,用x*x%n代替x,用e/2代替e;
3. 当e=0时。Y的值为X^e%n
算法就是这样,程序自己写吧 ls采用第归算法?其实没必要,这道题目利用数学中的一个命题就能很好的解决。
“被乘数的积的余数=被乘数的余数对乘数的积的余数”,也就是说(3*3) mod 7 = ((3 mod 7) *3) mod 7。虽然在数值计算上它没有什么用处但在计算机实现来说切非常有用,因此求3^100 mod 7的程序大致如下:
n=3
for i=1 to 100 do
begin
n=n mod 7
n=n*3
end
这几乎可以肯定地说是这个命题在计算机上最简单算法了,当然这个命题可以通过手算很快算出来就是。
最简单的实现 (python)
这个问题用Python实现只需要一句:3 ** 100 % 7 :L:
页:
[1]
