c语言 找对数(非暴力算法)
https://github.com/frankRenlf/c_dailyWork.git
暴力求解:时间复杂度太高了。数比较大时,很耗费时间。
只要算法学好,学什么语言都快
step1: 在k==0,count=n*n;
当k>0,
step2: 在
y
的整数倍区间内,
x
符合条件的数量就是
(n / y) * (y - k)
个
n / y 表示有多少个完整的 0 ~ y
区间,
y - k
表示有每个区间内有多少个符合条件的数字
step3: n % y
就是多出完整区间部分的数字个数,其中
k
以下的不用考虑,则符合条件的是
n % y - (k-1)
个
finally: 最终公式:
(n / y) * (y - k) + ((n % y < k) ? 0, (n % y - k + 1));
#include
c语言 找对数(非暴力算法)最先出现在Python成神之路。
共有 0 条评论