| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2162 人关注过本帖, 1 人收藏
标题:输入一个数,输入n为偶数时,求1/2+1/4+...+1/n,当输入n为奇数时,1/1+1/3+ ...
只看楼主 加入收藏
Cris
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2011-9-18
结帖率:66.67%
收藏(1)
 问题点数:0 回复次数:4 
输入一个数,输入n为偶数时,求1/2+1/4+...+1/n,当输入n为奇数时,1/1+1/3+...+1/n
输入一个数,输入n为偶数时,求1/2+1/4+...+1/n,当输入n为奇数时,1/1+1/3+...+1/n
2011-09-30 20:54
serious
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:81
专家分:497
注 册:2009-8-18
收藏
得分:0 
这是一个简短方式:
程序代码:
static void Main(string[] args)
{
    Func<double, double> round = d => Math.Round(d, 10);

    IDictionary<int, double> theoreticalValues = new Dictionary<int, double>
    {
        {1, 1.0},
        {2, 1.0/2},
        {3, 1.0 + 1.0/3},
        {4, 1.0/2 + 1.0/4},
        {5, 1.0 + 1.0/3 + 1.0/5},
        {6, 1.0/2 + 1.0/4 + 1.0/6},
        {7, 1.0 + 1.0/3 + 1.0/5 + 1.0/7},
        {8, 1.0/2 + 1.0/4 + 1.0/6 + 1.0/8},
        {9, 1.0 + 1.0/3 + 1.0/5 + 1.0/7 + 1.0/9},
        {10, 1.0/2 + 1.0/4 + 1.0/6 + 1.0/8 + 1.0/10}
    };

    Console.WriteLine("Expected\t| Computed\t| Result\n");

    foreach (var pair in theoreticalValues)
    {
        double sum = 0.0;

        int n = pair.Key;

        int i = n % 2 == 0 ? 2 : 1;

        while (i <= n)
        {
            sum += 1.0 / i;

            i += 2;
        };

        Console.WriteLine("{0:#0.0000000000}\t| {1:#0.0000000000}\t| {2}\n", round(pair.Value), round(sum), (round(pair.Value) - round(sum) == 0) ? "Passed" : "Failed");
    }
}

2011-10-01 07:26
jeanine123
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:65
专家分:192
注 册:2011-9-17
收藏
得分:0 
学习一下。
2011-10-01 10:23
qq88241126
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-12-8
收藏
得分:0 
2楼高手 学习了。
2011-12-08 22:50
快速回复:输入一个数,输入n为偶数时,求1/2+1/4+...+1/n,当输入n为奇数时,1/1 ...
数据加载中...
 
   



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

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