连续自然数和
发布时间:2020-12-16 10:47:49 所属栏目:百科 来源:网络整理
导读:P1147 连续自然数和 推了半天约数的关系无果,果断转向 等差数列+求根公式 。 公式1: 化n得: 配成二元一次方程形式: 再转化为代码解方程就可以了~ #includebits/stdc++.h using namespace std; double m,t,x1,x2; int main(){ cin m; for ( double i= 2 ;
P1147 连续自然数和 推了半天约数的关系无果,果断转向等差数列+求根公式。 公式1:化n得: 配成二元一次方程形式: 再转化为代码解方程就可以了~ #include<bits/stdc++.h> using namespace std; double m,t,x1,x2; int main() { cin>>m; for(double i=2;i<m;i++) { x1=(-1+sqrt(1-4*(i-i*i-2*m)))/2; if(x1>i&&x1==floor(x1))cout<<i<<‘ ‘<<x1<<endl; } return 0; } 公式2:配成二元一次方程形式 #include<bits/stdc++.h> using namespace std; double m,x2; int main() { cin>>m; for(double i=2;i<m;i++) { x1=((2*i-1)+sqrt((2*i-1)*(2*i-1)+8*m))/2; if(x1>i&&x1==floor(x1))cout<<i<<‘ ‘<<x1-i<<endl; } return 0; } 上面两个公式转换为代码:开一个2~m-1的循环(1和m没有用,易证),a1是循环当前位置i的值,是常量,公式1的an和公式2的n都是要求的未知数,其余都是常量。 两个公式的区别:
注意事项:
x2==floor(x2) ? ? ? ? ?3.要开double(废话 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |