- 4
- 0
- 约1.28万字
- 约 15页
- 2019-08-26 发布于江苏
- 举报
2012年程序设计竞赛基础实训22
1 解不等式
其中m为从键盘输入的正整数,式中符号为二个“+”号后一个“-”号,即分母能被3整除时为“-”。
输入正整数m,输出满足不等式的n。
测试数据: (1) m=4 (2) m=7
设计要点1:
式中出现减运算,导致不等式的解可能分段。
设置条件循环,每三项(包含二正一负)一起求和,得一个区间解。
然后回过头来一项项求和,得个别离散解。
为叙述方便,记
通过循环知s(d+1)m,且n=d+1为“-”,可得n=d为一个解;
而n=d+2时1.0/(n+3)为“+”,可得s(d+2)m;以后各项中,“-”项小于其前面的“+”项,可知对于nd+2有s(n)m成立。
因而有区间解:n≥d
在nd时是否有解,逐个求和检验确定离散解。这一步不能省,否则出现遗解。
程序设计1:
// 解不等式:m1+1/2-1/3+1/4+1/5-1/6+...+-1/n
#include stdio.h
void main()
{ long d,n,m,k; double s;
printf(\n 请输入m: ); scanf(%d,m);
n=-2;s=0;
while(s=m)
{ n=n+3;s=s+1.0/n+1.0/(n+1)-1.0/(n+2); }
原创力文档

文档评论(0)