最佳操作数 题目描述 给定一个数字 x,再给定一个等差数列。请寻找这个等差数列距离 x 最近的数字,并输出这个最小距离。 等差数列的第一项叫做首项,用数字 a 表示,接下来每一项都比前一项多 d,d 称之为公差,数列的项数记为 n。 输入 输入四个整数分别表示 x、a、d、n。 输出 输出一个整数表示最少的操作次数。 数据范围 -10^18≤x、a≤10^18,-10^6≤d≤10^6,1≤n≤10^12。 输入样例1 3 1 3 3 输出样例1 1 输入样例2 -1000000000000000000 1 3 3 输出样例2 1000000000000000001
正确答案:参考程序(Python):x,a,d,n=map(int,input().split());lo=a;hi=a+(n-1)*d if d>0 else a+(n-1)*d;if d==0:print(abs(x-a));else:k=max(0,min(n-1,(x-a)//d));ans=abs(x-(a+k*d));if k+1<n:ans=min(ans,abs(x-(a+(k+1)*d)));print(ans)。样例→1、1000000000000000001。核心:最近等差项距离。
试卷来源:202512 青少年等级考试C/C++真题四级