小白C学习博客日记#02

1.判断完全平方数的方法

可以使用 (int)sqrt(i) * (int)sqrt(i) == i;也可以使用sqrt(i) - (int)sqrt(i) == 0;也可以sqrt(i) == (int)sqrt(i)来进行判断;

除了用sqrt外,还可以使用二分法查找一个数的整数,然后判断它是否是一个整数;可以使用floor和cell函数来比较一个数的平方根的上下取整,如果他们相等,那么这是一个完全平方数;可以使用一些数论的性质,比如一个完全平方数的末尾只能是0,1,4,5,6,9,或者一个完全平方数除以3或4的余数只能是0或1。

2.在使用sqrt函数时,会遇到多重函数重载的问题,原因是sqrt里的形参时浮点型,若输入整型实参时则会遇到这个问题。可以1.0*x或(float)x强制类型转换。

3.在判断素数时,可以使用sqrt()函数来降低时间复杂度。

for (i=2; i<sqrt(1.0*i)+1; i++)

4.将一个数的各个位数上的数字调用时,可以除10判断是否为零,然后对十求余,就将各个位数上的值输出了,需要注意的是,最高位时需要跳出while后进行输出,容易忘记。

while(n/10 != 0)
{
    result = n%10;
    n /= 10;
}
result = n%10;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值