c语言中fmod()函数和log10()函数用法

C语言中fmod函数的功能是x/y的求余运算,适用于double ,float,long double,如果y=0的话,那么返回
值得一提的是%,‘%’同样是取余,但是%
适用于整数取余,%是整数的取余符号,而fmod是函数,它的参数必定是浮点型(double,float,long double),头文件是<math.h>可以看一下这个代码

#include<stdio.h>
#include<math.h>
int main()
{
double a=2.8,b=0.2,c=0.0;
c=fmod(a,b); 
printf("a=%.16lf,b=%.16lf,c=%.16lf\n",a,b,c);
}

结果是a=2.7999999999999998,b=0.2000000000000000,c=0.1999999999999997

C语言中log10(),一般可以用于nk,因为log10(nk)=k*log10(n)
可以从下面的题感悟
题意:求n^k的前三位和后三位
样例:
Sample Input
5
123456 1
123456 2
2 31
2 32
29 8751919
Sample Output
Case 1: 123 456
Case 2: 152 936
Case 3: 214 648
Case 4: 429 296
Case 5: 665 669

#include<stdio.h>
#include<math.h>
int main()
{
	int N;
	scanf("%d",&N);
	int qw=0;
	while(N--)
	{
		qw++;
		long long m,n;
		scanf("%lld %lld",&m,&n);
		printf("Case %d: ",qw);
		long long q=1,w;
		long long m1=m,n1=n;
		///
		while(n1)
		{
			if(n1%2==1)
			q=q*m1%1000;
			m1=m1*m1%1000;
			n1=n1/2; 
		}
	//	m1=m,n1=n;
		///!!!求前三位
		double e=n*log10(m);
		w=pow(10,e-(int)e)*100;
		///!!!
		printf("%lld %03lld\n",w,q);
	}
}

从这段代码想到

///
long long q=1;
  while(n1)
  {
   if(n1%2==1)
   q=q*m1%1000;
   m1=m1*m1%1000;
   n1=n1/2; 
  }

快速幂模板

int ans = 1;
a = a % c;
while(b>0)
{
if(b % 2 == 1)
  ans = (ans * a) % c;
b = b/2;
a = (a * a) % c;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值