24分 并且为什么ab取较大数时a^b计算得负数,求教
查看原帖
24分 并且为什么ab取较大数时a^b计算得负数,求教
1458559
zzxzzx_楼主2024/11/11 11:07
#include <stdio.h>
long long f(long long a,long long b)
{
	long long z=1;
	while(b)
	{
		if(b%2==0)
		{
			b/=2;
			a*=a;
		}
		else
		{
			b--;
			z*=a;
		}
	}
	return z;
}
int main()
{
	long long a,b,p,s;
	scanf("%ld %ld %ld",&a,&b,&p);
	s=f(a,b)%p;
	printf("%ld\n",f(a,b));
	printf("%ld^%ld mod %ld=%ld",a,b,p,s);
	return 0; 
}

2024/11/11 11:07
加载中...