算法思考
大大大大橙子呀
这个作者很懒,什么都没留下…
展开
-
计算一个数字的的长度
思路:将逐个简化变成规律性增加,发现1-9是1,10-99是2,100-999是3...且一位数的数量为9,两位数的数量为90,三位数的数量为900..,则可按照9 90 900...与对应位数相乘再累加。2.将老师的for循环的循环条件改为判断几位数,即是否比9 99 999...大,如大于则直接将之前的按位数依次累加位数和数量乘积。然后位数递增,数量十倍递增,数字减去之前的位数数量,再进行判断。分析:老师方法是正序累加循环计算,每次加一,计算位数相加,逐个计算时间太久。int c = 1;原创 2023-03-27 07:28:18 · 733 阅读 · 0 评论 -
输入a、b,计算平均值 —— LC
结果:不超过取值范围,但会造成精度遗失,如a=1、b=1时结果为0。2147483647,b=2,结果为1073741824。输入a=1,b=1,结果为1。思路:相加过程会超过int范围,使用先取半再相加。代码:answer=a/2+b/2。改进:将数的个位与其他位分开计算。原创 2023-03-27 07:29:18 · 268 阅读 · 0 评论