| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 398 人关注过本帖
标题:一道ACM的水题,不知道为什么会溢出,新人求助
取消只看楼主 加入收藏
ashu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-2-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
一道ACM的水题,不知道为什么会溢出,新人求助
一千零一液
时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 157            测试通过 : 44
描述
小时候的YB,有一个特殊的癖好,就是收集各种液体,他家的柜子上已经摆满了他所收集的液体,而他家的柜子正好有10001排。每一排都摆放了不同的液体数量,第一排的液体总数是1,第二排液体总数是2+3+4,第三排的液体总数是5+6+7+8+9,依此类推。由于YB对一种叫做“欧液”的液体情有独钟,所以,他在除了第一排以外的每一排都放置了这种液体,而对于任意一排的欧液数,始终都等于它前一排的不是欧液的液体总数。现在,YB已经收集了所有的液体,他现在要给每一排编号,即他想知道在第几排一共有多少的液体.以及这一排有多少的欧液
输入
第一行有一个整数t(0<t<=10),表示有t组测试数据,对于每组测试数据,只有一个正整数n(0<n<=10001)。   
输出
输出有2个数,用空格隔开,分别是第n排的所有液体总数以及第n排欧液的液体数。
样例输入
3
1
3
2
样例输出
1 0
35 8
9 1



我的程序:
#include<stdio.h>
ouye(long int a[],long int b[],int n)
{
    if(n==1)
       return b[1]=0;
    else
        return b[n]=a[n-1]-ouye(a,b,n-1);
}
main()
{
    int t,n,i,j,k;
    long int b[10002],a[10002];
    scanf("%d",&t);
    a[1]=1;
    for(i=2;i<=10001;i++)
    {
        a[i]=0;
        for(j=(i-1)*(i-1)+1;j<=i*i;j++)
            a[i]+=j;
    }
    for(i=0;i<t;i++)
    {
        scanf("%d",&n);
        printf("%d %d\n",a[n],ouye(a,b,n));
    }
}
搜索更多相关主题的帖子: Java 柜子 
2014-02-27 00:29
ashu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-2-4
收藏
得分:0 
回复 3楼 rjsp
这个%u是无符号整数吗?所以数的范围会比较大?你是直接输出的公式吧,我不用公式就是因为整型会溢出,能不能详细讲一下?我是新手,不是很看得懂你的代码里的一些东西
2014-02-27 14:39
快速回复:一道ACM的水题,不知道为什么会溢出,新人求助
数据加载中...
 
   



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

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