C++题目。设n为正整数,求解n使不等式a<1+1/(1+1/2)+。。。+1/1+(1/2)+..+(1/n)<b成立,输入整形a,b,

输出n,若n只是一个值,输出这个n,若n为一个区间,则输去区间的上下限,用空格隔开。... 输出n,若n只是一个值,输出这个n,若n为一个区间,则输去区间的上下限,用空格隔开。 展开
 我来答
xuzhouliuying
高粉答主

2018-04-24 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.5亿
展开全部
#include <stdio.h>
void main(){
int a,b,i,n;double k=0,s=0;
scanf("%d%d",&a,&b);
if(a>=b||b<1) printf("no answer");
else{
for(n=1;s<a;n++)
{k+=1.0/n;s+=1/k;}
i=n;k=0;s=0;
for(n=1;s<b;n++)
{k+=1.0/n;s+=1/k;}
i==n-2?printf("%d",i):printf("%d %d",i,n-2); 
}
}

运行示例:

小鹏子小丸子
2015-10-31 · TA获得超过217个赞
知道小有建树答主
回答量:295
采纳率:0%
帮助的人:125万
展开全部
#include <stdio.h>

float sum(int n)

{

float s=0;

int i;

for(i=1;i<=n;++i)

{

s+=1.0/i;//计算(1+1/2+...+1/n),注意是1.0,这样算出来的才是小数

}

s=1.0/s;//计算1/(1+1/2+...+1/n)

return s;

}

int main()

{

float a,b,s=0,temp;

int n,flag=1,i;

printf("请输入a和b:");

scanf("%f%f",&a,&b);

if(a>b)

{

temp=a;

a=b;

b=temp;

}

for(n=1;n<10000;++n)

{

s+=sum(n); //计算1+1/(1+1/2)+1/(1+1/2+1/3)+.......+1(1+1/2+...+1/n)

if(flag)

{

if(s>a) //当前的n使得不等式成立

{

i=n;

flag=0;

}

}

if(s>b)//当前使得s>b

break;

}

printf("n为:%d",i);//输出得到的n

if((n!=(i+1))&&(a!=b))

printf(",%d",n-1);

printf("\n");

return 0;

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式