| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7558 人关注过本帖
标题:求1到20阶乘的和,哪点错了,谢谢
只看楼主 加入收藏
李沫沫
Rank: 2
来 自:唐山
等 级:论坛游民
帖 子:35
专家分:13
注 册:2013-3-14
收藏
得分:0 
起始值不能定义为0,这样的话i*j=0了。以后就不能循环了

沫沫、努力学习呀!c++我来了!
2013-03-25 22:03
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
谁运行一下!!!
程序代码:
#include <stdio.h>

#define N 20
#define SIZE 50

int a[N][SIZE] = {{1, 1}, {1, 2}, {1, 6}};

void out(int s[])
{
    for (int i = 1;i <= s[0];printf("%d", s[i++]));
    puts("");
}

void Init(int n)
{
    int i, j = 1, temp = 0;

    for (i = a[n-1][0];i > 0;--i)
    {
        temp += a[n-1][i] * (n+1);
        a[n][j++] = temp % 10;
        temp /= 10;
    }
    while (temp)
    {
        a[n][j++] = temp % 10;
        temp /= 10;
    }
    a[n][0] = --j;

    for (i = 0;++i <= j;--j)
        temp = a[n][j], a[n][j] =
        a[n][i], a[n][i] = temp;
    
    printf("%2d! = ", n+1);
    out(a[n]);
}

void Add(int s[], int b[])
{
    int temp = 0, c[SIZE] = {0};
    int k = 1, i = s[0], j = b[0];
    
    for (;i && j;--i, --j)
    {
        temp += s[i] + b[j];
        c[k++] = temp % 10;
        temp /= 10;
    }
    while (i)
    {
        temp += s[i--];
        c[k++] = temp % 10;
        temp /= 10;
    }
    while (j)
    {
        temp += b[j--];
        c[k++] = temp % 10;
        temp /= 10;
    }
    while (temp)
    {
        c[k++] = temp % 10;
        temp /= 10;
    }
    s[0] = --k;
    for (i = 1;k;s[i++] = c[k--]);
}

int main()
{
    int i, b[SIZE] = {0};
    for (i = 3;i < N;Init(i++));
    for (i = 0;i < N;Add(b, a[i++]));
    
    printf("\n1! + 2! + ... + %d! = ", N);
    out(b);
    return 0;
}


[fly]存在即是合理[/fly]
2013-03-25 22:48
李沫沫
Rank: 2
来 自:唐山
等 级:论坛游民
帖 子:35
专家分:13
注 册:2013-3-14
收藏
得分:0 
楼上的大姐。貌似不用这么麻烦

沫沫、努力学习呀!c++我来了!
2013-03-26 12:18
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
回复 23楼 李沫沫
我实在看不过把错误答案当正解的

你运行下你的代码,看看 17!是多少


[fly]存在即是合理[/fly]
2013-03-26 12:30
蓝脚印
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2013-3-23
收藏
得分:0 
程序代码:
#include <stdio.h>
int main()
{
    int a=1,tn=0,i,j;
    for(i=1;i<=20;i++)
       {
           a=a*i;
           tn=tn+a;
        }
        
}

楼主用这个试试
2013-03-26 13:40
蓝脚印
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2013-3-23
收藏
得分:0 
程序代码:
#include <stdio.h>
int main()
{
    int a=1,tn=0,i;
    for(i=1;i<=20;i++)
       {
           a=a*i;
           tn=tn+a;
        }
        
}

楼主用这个试试
2013-03-26 13:41
蓝脚印
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2013-3-23
收藏
得分:0 
回复 25楼 蓝脚印
这个错了
2013-03-26 13:41
蓝脚印
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2013-3-23
收藏
得分:0 
不好意思,我说的是25楼错了
#include <stdio.h>
int main()
{
    int a=1,tn=0,i;
    for(i=1;i<=20;i++)
       {
           a=a*i;
           tn=tn+a;
        }
     printf("%d",tn);
}
2013-03-26 13:44
whukeming
Rank: 2
等 级:论坛游民
帖 子:76
专家分:51
注 册:2008-8-24
收藏
得分:0 
表示VC++运行正常
2013-03-26 13:52
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
以下是引用蓝脚印在2013-3-26 13:44:01的发言:

不好意思,我说的是25楼错了
#include <stdio.h>
int main()
{
    int a=1,tn=0,i;
    for(i=1;i<=20;i++)
       {
           a=a*i;
           tn=tn+a;
        }
     printf("%d",tn);
}

你试试把 20变成 13运行看看


[fly]存在即是合理[/fly]
2013-03-26 13:54
快速回复:求1到20阶乘的和,哪点错了,谢谢
数据加载中...
 
   



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

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