| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 398 人关注过本帖
标题:一个关于多项式的问题,请大家看看
只看楼主 加入收藏
CRUISEQUAN
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-7
结帖率:0
收藏
已结贴  问题点数:20 回复次数:10 
一个关于多项式的问题,请大家看看
若要求&1+1/(1+2)+........+1/(1+2+.....+n)可以做如此代码
 #include<stdio.h>
void main()
{
     int i,n;
    double sum=0.0;
    int temp=0;
    printf("请输入一个正整数:\n");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        temp+=i;
        sum+=1.0/(temp);
    }
    printf("%f",sum);
  }
但是若要求最后一项小于10的-6次方,那该怎么改
搜索更多相关主题的帖子: double 多项式 正整数 
2012-12-07 13:25
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:20 
在for循环外加一个while(1.0/temp < 1e -6)
2012-12-07 13:33
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 

错了应该是:
在for循环外加一个while(1.0/temp > 1e -6)
2012-12-07 13:36
CRUISEQUAN
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-7
收藏
得分:0 
回复 2楼 daniel_
亲能详细点吗,
2012-12-07 13:37
CRUISEQUAN
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-7
收藏
得分:0 
回复 3楼 daniel_
新的问题不需要输入n。我把n去掉,在for循环的判别式里加上temp<1e-6,但是temp初始值为0
2012-12-07 13:40
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
#include<stdio.h>
int  main()
{
    int i = 0;
    int n = 0;
    double sum = 0.0;
    int temp = 0;
    printf("请输入一个正整数:\n");
    scanf("%d",&n);
    while((1.0/temp) > 1e-6)
    {
        for(i = 1;i <= n;i++)
        {
            temp += i;
             sum += 1.0/(temp);
         }
    }
    printf("%f\n",sum);
    return 0;
}
-------------
这样的
2012-12-07 13:43
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
#include<stdio.h>
int  main()
{
    int i = 0;
    int n = 0;
    double sum = 0.0;
    int temp = 0;
    printf("请输入一个正整数:\n");
    scanf("%d",&n);
    do
    {
        for(i = 1;i <= n;i++)
        {
            temp += i;
             sum += 1.0/(temp);
         }
    } while((1.0/temp) > 1e-6)

    printf("%f\n",sum);
    return 0;
}
----------
你的要求是最后一项要小于10-6次方,那应该用 do {}while
2012-12-07 13:46
CRUISEQUAN
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-7
收藏
得分:0 
回复 7楼 daniel_
如果我不要求输入n,只是将条件改为小于10的-6次方呢,中间那一部分怎么去掉
2012-12-07 14:03
CRUISEQUAN
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-7
收藏
得分:0 
回复 7楼 daniel_
初始值temp等于0那么判断条件1/temp不就不成立了吗
2012-12-07 14:07
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
#include<stdio.h>
int  main()
{
    int i = 0;
    int n = 0;
    double sum = 0.0;
    int temp = 0;

        for(i = 1;(1.0/temp) > 1e-6;i++)
        {
            temp += i;
             sum += 1.0/(temp);
         }

    printf("%f\n",sum);
    return 0;
}
-------
这样的
1.0/temp 是,做了一个操作,把 temp = 0转换成了float型,大约是(0.0000000001)个数
2012-12-07 14:23
快速回复:一个关于多项式的问题,请大家看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016343 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved