标题:hdu2156输出的数据和别人弄得一样,确实错的,不知道怎么回事?求指导
只看楼主
清尘
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-9-5
结帖率:66.67%
已结贴  问题点数:20 回复次数:3 
hdu2156输出的数据和别人弄得一样,确实错的,不知道怎么回事?求指导
我们定义如下矩阵:
1/1 1/2 1/3
1/2 1/1 1/2
1/3 1/2 1/1
矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。
请求出这个矩阵的总和。
每行给定整数N (N<50000),表示矩阵为 N*N.当N为0时,输入结束。
输出答案,保留2位小数。
1
2
3
4
0
1.00
3.00
5.67
8.83
我的代码
#include<stdio.h>
int main()
{
    int i,j;
    int n;
    while(scanf("%d",&n)==1&&n&&n<5000)
    {
        double t=0;
        for(i=1;i<n;i++)
        {
            for(j=2;j<=n+1-i;j++)
                t+=1.0/j;
        }
        t*=2;
        t+=n;
        printf("%.2lf\n",t);
    }
    return 0;
}
别人的代码:
#include<stdio.h>
int main(){
    int n;
    while(scanf("%d",&n) && n){
        double sum=0;
        int i;
        sum+=n*1;
        for(i=2;i<=n;i++){
            sum+=1.0/i*(n-i+1)*2;
        }
        printf("%.2lf\n",sum);
    }
    return 0;
}
搜索更多相关主题的帖子: include double 对角线 元素 
2013-09-05 15:17
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
得分:5 
while(scanf("%d",&n)==1&&n&&n<5000)????????????

printf("%.2lf\n",sum);这里是L还是1???????????


武功再高也怕菜刀.
2013-09-05 15:40
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
得分:6 
2重循环超时!

仰望星空...........不忘初心!
2013-09-05 19:42
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:9 
你的while条件多了很多

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-09-12 18:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-420151-1-1.html




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

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